BaseRecyclerViewAdapterHelper詳細介紹(二)----實現嵌套功能

相關文章:

BaseRecyclerViewAdapterHelper詳細介紹(一)

BaseRecyclerViewAdapterHelper詳細介紹(三)----實現點擊事件,添加頭佈局,腳佈局

 

一,有兩種方式實現嵌套功能

1,第一種實現方式 繼承BaseMultiItemQuickAdapter

public class OpenRecordAddapter extends BaseMultiItemQuickAdapter<HappyBaseCategoryLists.BaseCategoryBean, BaseViewHolder> {

    public static final int ITEM_TITLE = 1;
    public static final int ITEM_CONTENT = 2;

    public OpenRecordAddapter(@Nullable List<HappyBaseCategoryLists.BaseCategoryBean> data) 
    {
        super(data);
        
        addItemType(RvNestActivity.BIG_BEAN_ITEM_TYPE, R.layout.item_parent2);
        addItemType(RvNestActivity.SMALL_BEAN_ITEM_TYPE, R.layout.item_child2);
    }


    @Override
    protected void convert(BaseViewHolder helper, HappyBaseCategoryLists.BaseCategoryBean 
     item) {

        // 第三步:設置不同佈局下的組件數據
        switch (helper.getItemViewType()) { 

            case RvNestActivity.BIG_BEAN_ITEM_TYPE:
                
                helper.setText(R.id.parent_name,  item.getClassContent());
                break;

            case RvNestActivity.SMALL_BEAN_ITEM_TYPE: 
                helper.setText(R.id.child_name,  item.getClassContent())
                        .addOnClickListener(R.id.btn_repair);
                break;
        }
    }
}

 

2,第二種實現方式 繼承BaseQuickAdapter

public class OpenRecordAddapter extends BaseQuickAdapter<HappyBaseCategoryLists.BaseCategoryBean, BaseViewHolder> {


    public static final int ITEM_TITLE = 1;
    public static final int ITEM_CONTENT = 2;

    public OpenRecordAddapter(@Nullable List<HappyBaseCategoryLists.BaseCategoryBean> 
    data) {
        super(data);

              // 第一步:動態判斷
        setMultiTypeDelegate(new 
          MultiTypeDelegate<HappyBaseCategoryLists.BaseCategoryBean>() {

            @Override
            protected int getItemType(HappyBaseCategoryLists.BaseCategoryBean 
            baseCategoryBean) {

                // 當前例子中只有兩種類型
                if(baseCategoryBean.getItemType() == RvNestActivity.BIG_BEAN_ITEM_TYPE){
                    return ITEM_TITLE;  // 加載頭佈局
                }else if(baseCategoryBean.getItemType() == 
                 RvNestActivity.SMALL_BEAN_ITEM_TYPE){

                    return ITEM_CONTENT; // 加載內容佈局
                }

                return 0;
            }
        });

        // 第二步:設置type和layout的對應關係
        getMultiTypeDelegate().registerItemType(ITEM_TITLE, R.layout.item_parent2)
                .registerItemType(ITEM_CONTENT,R.layout.item_child2);
    }


    @Override
    protected void convert(BaseViewHolder helper, HappyBaseCategoryLists.BaseCategoryBean 
    item) {

        // 第三步:設置不同佈局下的組件數據
        switch (helper.getItemViewType()) {

            case RvNestActivity.BIG_BEAN_ITEM_TYPE:
                
                helper.setText(R.id.parent_name,  item.getClassContent());
                break;

            case RvNestActivity.SMALL_BEAN_ITEM_TYPE: //ITEM_CONTENT
                helper.setText(R.id.child_name,  item.getClassContent())
                        .addOnClickListener(R.id.btn_repair);
                break;
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章