Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private AbstractExpandableDataProvider mProvider;
- private Context context;
- public static abstract class MyBaseViewHolder extends AbstractExpandableItemViewHolder {
- public ViewGroup mContainer;
- public View mDragHandle;
- public TextView mTextView;
- public FrameLayout frameLayoutGroup;
- public MyBaseViewHolder(View v) {
- super(v);
- mContainer = (ViewGroup) v.findViewById(R.id.container);
- mDragHandle = v.findViewById(R.id.drag_handle);
- mTextView = (TextView) v.findViewById(android.R.id.text1);
- //frameLayoutGroup=(FrameLayout)v.findViewById(R.id.list)
- // hide the drag handle
- mDragHandle.setVisibility(View.GONE);
- }
- }
- public static class MyGroupViewHolder extends MyBaseViewHolder {
- public MyGroupViewHolder(View v) {
- super(v);
- }
- }
- public static class MyChildViewHolder extends MyBaseViewHolder {
- public MyChildViewHolder(View v) {
- super(v);
- }
- }
- public MyExpandableItemAdapter(AbstractExpandableDataProvider dataProvider) {
- mProvider = dataProvider;
- // ExpandableItemAdapter requires stable ID, and also
- // have to implement the getGroupItemId()/getChildItemId() methods appropriately.
- setHasStableIds(true);
- }
- @Override
- public int getGroupCount() {
- return mProvider.getGroupCount();
- }
- @Override
- public int getChildCount(int groupPosition) {
- return mProvider.getChildCount(groupPosition);
- }
- @Override
- public long getGroupId(int groupPosition) {
- return mProvider.getGroupItem(groupPosition).getGroupId();
- }
- @Override
- public long getChildId(int groupPosition, int childPosition) {
- return mProvider.getChildItem(groupPosition, childPosition).getChildId();
- }
- @Override
- public int getGroupItemViewType(int groupPosition) {
- return 0;
- }
- @Override
- public int getChildItemViewType(int groupPosition, int childPosition) {
- return 0;
- }
- @Override
- public MyGroupViewHolder onCreateGroupViewHolder(ViewGroup parent, int viewType) {
- final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- final View v = inflater.inflate(R.layout.list_group_item, parent, false);
- return new MyGroupViewHolder(v);
- }
- @Override
- public MyChildViewHolder onCreateChildViewHolder(ViewGroup parent, int viewType) {
- final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- final View v = inflater.inflate(R.layout.list_item, parent, false);
- return new MyChildViewHolder(v);
- }
- @Override
- public void onBindGroupViewHolder(MyGroupViewHolder holder, int groupPosition, int viewType) {
- // child item
- final AbstractExpandableDataProvider.BaseData item = mProvider.getGroupItem(groupPosition);
- // set text
- holder.mTextView.setText(item.getText());
- // mark as clickable
- //holder.itemView.setClickable(true);
- // if(groupPosition==0){
- // holder.itemView.setEnabled(false);
- // }
- // set background resource (target view ID: container)
- final int expandState = holder.getExpandStateFlags();
- if ((expandState & RecyclerViewExpandableItemManager.STATE_FLAG_IS_UPDATED) != 0) {
- int bgResId;
- if ((expandState & RecyclerViewExpandableItemManager.STATE_FLAG_IS_EXPANDED) != 0 ) {
- bgResId = R.drawable.bg_group_item_expanded_state;
- } else {
- bgResId = R.drawable.bg_group_item_normal_state;
- }
- holder.mContainer.setBackgroundResource(bgResId);
- }
- if(mProvider.getGroupItem(groupPosition).getGroupId()==5){
- holder.itemView.findViewById(R.id.container).setBackgroundColor(Color.TRANSPARENT);
- }
- //if(groupPosition==0){
- // holder.itemView.findViewById(R.id.container).setBackgroundColor(Color.TRANSPARENT);
- // }
- }
- @Override
- public void onBindChildViewHolder(MyChildViewHolder holder, int groupPosition, int childPosition, int viewType) {
- // group item
- final AbstractExpandableDataProvider.ChildData item = mProvider.getChildItem(groupPosition, childPosition);
- // set text
- holder.mTextView.setText(item.getText());
- // set background resource (target view ID: container)
- int bgResId;
- bgResId = R.drawable.bg_item_normal_state;
- holder.mContainer.setBackgroundResource(bgResId);
- }
- @Override
- public boolean onCheckCanExpandOrCollapseGroup(MyGroupViewHolder holder, int groupPosition, int x, int y, boolean expand) {
- // check the item is *not* pinned
- if (mProvider.getGroupItem(groupPosition).isPinnedToSwipeLeft()) {
- // return false to raise View.OnClickListener#onClick() event
- return false;
- }
- // check is enabled
- // if (!(holder.itemView.isEnabled() && holder.itemView.isClickable()||groupPosition==0)) {
- // return false;
- // }
- if(groupPosition==0){
- return false;
- }
- final View containerView = holder.mContainer;
- final View dragHandleView = holder.mDragHandle;
- final int offsetX = containerView.getLeft() + (int) (ViewCompat.getTranslationX(containerView) + 0.5f);
- final int offsetY = containerView.getTop() + (int) (ViewCompat.getTranslationY(containerView) + 0.5f);
- return !ViewUtils.hitTest(dragHandleView, x - offsetX, y - offsetY);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement