Advertisement
Guest User

Untitled

a guest
May 5th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.06 KB | None | 0 0
  1. private AbstractExpandableDataProvider mProvider;
  2. private Context context;
  3.  
  4.  
  5. public static abstract class MyBaseViewHolder extends AbstractExpandableItemViewHolder {
  6. public ViewGroup mContainer;
  7. public View mDragHandle;
  8. public TextView mTextView;
  9. public FrameLayout frameLayoutGroup;
  10.  
  11. public MyBaseViewHolder(View v) {
  12. super(v);
  13. mContainer = (ViewGroup) v.findViewById(R.id.container);
  14. mDragHandle = v.findViewById(R.id.drag_handle);
  15. mTextView = (TextView) v.findViewById(android.R.id.text1);
  16. //frameLayoutGroup=(FrameLayout)v.findViewById(R.id.list)
  17. // hide the drag handle
  18. mDragHandle.setVisibility(View.GONE);
  19. }
  20. }
  21.  
  22. public static class MyGroupViewHolder extends MyBaseViewHolder {
  23. public MyGroupViewHolder(View v) {
  24. super(v);
  25.  
  26.  
  27. }
  28. }
  29.  
  30. public static class MyChildViewHolder extends MyBaseViewHolder {
  31. public MyChildViewHolder(View v) {
  32. super(v);
  33.  
  34.  
  35. }
  36. }
  37.  
  38. public MyExpandableItemAdapter(AbstractExpandableDataProvider dataProvider) {
  39. mProvider = dataProvider;
  40.  
  41. // ExpandableItemAdapter requires stable ID, and also
  42. // have to implement the getGroupItemId()/getChildItemId() methods appropriately.
  43. setHasStableIds(true);
  44. }
  45.  
  46. @Override
  47. public int getGroupCount() {
  48. return mProvider.getGroupCount();
  49. }
  50.  
  51. @Override
  52. public int getChildCount(int groupPosition) {
  53. return mProvider.getChildCount(groupPosition);
  54. }
  55.  
  56. @Override
  57. public long getGroupId(int groupPosition) {
  58. return mProvider.getGroupItem(groupPosition).getGroupId();
  59. }
  60.  
  61. @Override
  62. public long getChildId(int groupPosition, int childPosition) {
  63. return mProvider.getChildItem(groupPosition, childPosition).getChildId();
  64. }
  65.  
  66. @Override
  67. public int getGroupItemViewType(int groupPosition) {
  68. return 0;
  69. }
  70.  
  71. @Override
  72. public int getChildItemViewType(int groupPosition, int childPosition) {
  73. return 0;
  74. }
  75.  
  76. @Override
  77. public MyGroupViewHolder onCreateGroupViewHolder(ViewGroup parent, int viewType) {
  78. final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
  79. final View v = inflater.inflate(R.layout.list_group_item, parent, false);
  80. return new MyGroupViewHolder(v);
  81. }
  82.  
  83. @Override
  84. public MyChildViewHolder onCreateChildViewHolder(ViewGroup parent, int viewType) {
  85. final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
  86. final View v = inflater.inflate(R.layout.list_item, parent, false);
  87. return new MyChildViewHolder(v);
  88. }
  89.  
  90. @Override
  91. public void onBindGroupViewHolder(MyGroupViewHolder holder, int groupPosition, int viewType) {
  92. // child item
  93. final AbstractExpandableDataProvider.BaseData item = mProvider.getGroupItem(groupPosition);
  94.  
  95. // set text
  96. holder.mTextView.setText(item.getText());
  97.  
  98. // mark as clickable
  99. //holder.itemView.setClickable(true);
  100. // if(groupPosition==0){
  101. // holder.itemView.setEnabled(false);
  102. // }
  103.  
  104.  
  105. // set background resource (target view ID: container)
  106. final int expandState = holder.getExpandStateFlags();
  107.  
  108. if ((expandState & RecyclerViewExpandableItemManager.STATE_FLAG_IS_UPDATED) != 0) {
  109. int bgResId;
  110.  
  111. if ((expandState & RecyclerViewExpandableItemManager.STATE_FLAG_IS_EXPANDED) != 0 ) {
  112. bgResId = R.drawable.bg_group_item_expanded_state;
  113. } else {
  114. bgResId = R.drawable.bg_group_item_normal_state;
  115. }
  116.  
  117. holder.mContainer.setBackgroundResource(bgResId);
  118. }
  119.  
  120.  
  121. if(mProvider.getGroupItem(groupPosition).getGroupId()==5){
  122. holder.itemView.findViewById(R.id.container).setBackgroundColor(Color.TRANSPARENT);
  123. }
  124. //if(groupPosition==0){
  125. // holder.itemView.findViewById(R.id.container).setBackgroundColor(Color.TRANSPARENT);
  126. // }
  127.  
  128.  
  129.  
  130. }
  131.  
  132. @Override
  133. public void onBindChildViewHolder(MyChildViewHolder holder, int groupPosition, int childPosition, int viewType) {
  134. // group item
  135. final AbstractExpandableDataProvider.ChildData item = mProvider.getChildItem(groupPosition, childPosition);
  136.  
  137. // set text
  138. holder.mTextView.setText(item.getText());
  139.  
  140. // set background resource (target view ID: container)
  141. int bgResId;
  142. bgResId = R.drawable.bg_item_normal_state;
  143. holder.mContainer.setBackgroundResource(bgResId);
  144. }
  145.  
  146. @Override
  147. public boolean onCheckCanExpandOrCollapseGroup(MyGroupViewHolder holder, int groupPosition, int x, int y, boolean expand) {
  148. // check the item is *not* pinned
  149. if (mProvider.getGroupItem(groupPosition).isPinnedToSwipeLeft()) {
  150. // return false to raise View.OnClickListener#onClick() event
  151. return false;
  152. }
  153.  
  154. // check is enabled
  155. // if (!(holder.itemView.isEnabled() && holder.itemView.isClickable()||groupPosition==0)) {
  156. // return false;
  157. // }
  158. if(groupPosition==0){
  159. return false;
  160. }
  161.  
  162. final View containerView = holder.mContainer;
  163. final View dragHandleView = holder.mDragHandle;
  164.  
  165. final int offsetX = containerView.getLeft() + (int) (ViewCompat.getTranslationX(containerView) + 0.5f);
  166. final int offsetY = containerView.getTop() + (int) (ViewCompat.getTranslationY(containerView) + 0.5f);
  167.  
  168. return !ViewUtils.hitTest(dragHandleView, x - offsetX, y - offsetY);
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement