ConcatAdapter 合并多个 Adapter的坑

 @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List payloads) {
       
    }
 

这里的参数position并不是 holder 在列表中的位置 ,他在在他自己的adapter中的位置,也就是 position=holder.getBindingAdapterPosition()  在使用 ConcatAdapter 合并多个 Adapter 的时候,两个值不一定相等,

获取列表中真实的位置,你可以使用 ViewHolder.getAbsoluteAdapterPosition();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ConcatAdapter 是一个 RecyclerView.Adapter 的实现类,它可以将多个不同类型的 Adapter 连接起来,在 RecyclerView 中以串联的形式展示数据。 通过使用 ConcatAdapter,您可以在一个 RecyclerView 中显示多个 RecyclerView.Adapter 的数据。它将这些 Adapter 串联在一起,以便它们的数据按顺序显示在同一个列表中。这样,您就可以轻松地将不同类型的数据和布局组合在一起,实现更灵活和复杂的列表展示效果。 要使用 ConcatAdapter,您需要创建一个新的 ConcatAdapter 对象,并将要连接的 Adapter 作为参数传递给它的构造函数。然后,将 ConcatAdapter 设置给 RecyclerView,并像正常情况下一样使用 RecyclerView。 下面是一个简单的示例代码,展示如何使用 ConcatAdapter: ```java // 创建多个 RecyclerView.Adapter 对象 MyAdapter1 adapter1 = new MyAdapter1(); MyAdapter2 adapter2 = new MyAdapter2(); MyAdapter3 adapter3 = new MyAdapter3(); // 创建 ConcatAdapter 对象,并连接 Adapter ConcatAdapter concatAdapter = new ConcatAdapter(adapter1, adapter2, adapter3); // 设置 ConcatAdapter 给 RecyclerView recyclerView.setAdapter(concatAdapter); ``` 在上面的示例中,adapter1、adapter2 和 adapter3 是不同类型的 RecyclerView.Adapter 对象。ConcatAdapter 将它们连接在一起,并将它们的数据按顺序显示在 RecyclerView 中。 希望这个解释对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值