BaseRecyclerViewAdapterHelper详细介绍(二)----实现嵌套功能

本文详细介绍了BaseRecyclerViewAdapterHelper实现嵌套功能的两种方法:一是继承BaseMultiItemQuickAdapter,二是继承BaseQuickAdapter。对于需要在RecyclerView中嵌套使用多种类型的列表项的开发者来说,这是一个实用的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关文章:

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;
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值