You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

横向RecyclerView嵌套两个纵向RecyclerView时onBindViewHolder如何实现

解决方案

核心实现逻辑

你只需要在横向RecyclerView的onBindViewHolder方法中,为两个子纵向RecyclerView分别配置纵向布局管理器、绑定对应适配器、传入当前条目封装的数据集即可,代码如下:

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    // 获取当前横向条目对应的混合数据模型
    Question_Model_Mix currentItem = questionList.get(position);
    Context context = holder.itemView.getContext();

    // 配置左侧纵向RecyclerView
    holder.recyclerView1.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
    Mixandmatchadapter_left leftAdapter = new Mixandmatchadapter_left(currentItem.getDatalist_left(), context);
    holder.recyclerView1.setAdapter(leftAdapter);

    // 配置右侧纵向RecyclerView
    holder.recyclerView2.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
    mixandmatchadapter rightAdapter = new mixandmatchadapter(currentItem.getDatalist(), context);
    holder.recyclerView2.setAdapter(rightAdapter);
}

你需要确保Question_Model_Mix类已经实现了对应数据集的getter方法,参考类结构如下:

public class Question_Model_Mix {
    private ArrayList<Mixmatchclass> datalist;
    private ArrayList<Mixandmatchclass_left> datalist_left;

    public Question_Model_Mix(ArrayList<Mixmatchclass> datalist, ArrayList<Mixandmatchclass_left> datalist_left) {
        this.datalist = datalist;
        this.datalist_left = datalist_left;
    }

    public ArrayList<Mixmatchclass> getDatalist() {
        return datalist;
    }

    public ArrayList<Mixandmatchclass_left> getDatalist_left() {
        return datalist_left;
    }
}

可选优化点

  • 横向RecyclerView条目复用频繁的场景下,可以给子RecyclerView添加holder.recyclerView1.setHasFixedSize(true)配置,避免重复测量视图大小,提升渲染性能
  • 如果需要禁止子纵向RecyclerView的滑动,只保留横向RecyclerView的滑动能力,可以给子RecyclerView设置holder.recyclerView1.setNestedScrollingEnabled(false)

内容的提问来源于stack exchange,提问作者Priyanshu Pundhir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:15:00