RecyclerView在另一个RecyclerView中

Eme*_*men 6 android android-recyclerview

我正在尝试在RecyclerView父母中创建一个混合项目,在其中包含一些CardViewsRecyclerView其中的内容.如果你还没有看到它,想象一下ListViews里面的几个RecyclerView(ListViews由一个Header分组).

这是一个我用来更清楚的结构:

RecyclerViewCeption

以上是我想要实现的布局结构.请注意,这只是计划.我不确定在RecyclerView中是否有一个RecyclerView是个好主意.

到目前为止,我已经尝试使用ExpandableRecyclerView来实现这种复杂的布局.但问题是在RecyclerView中添加不同的项目类型(例如水平滚动轮播)时,它隐藏在标题中.

我现在想不出任何其他方式.你们对如何实现这种布局有任何建议吗?

为了简单起见,如果你明白我的意思,它就是RecyclerView父母CardView内部的一个孩子RecyclerView.

Muc*_*low 4

不鼓励将 RecyclerView 包含在另一个 RecyclerView 中。但是,如果您想使用嵌套的 RecyclerView 实现上述目的,则可以使用布局管理器将 RecyclerView 包装到最里面(绿色)RecyclerView 的内容高度。https://github.com/serso/android-linear-layout-manager已经提供了这样一个布局管理器

还要确保通过设置 onTouchListener 来禁用最里面的 RecyclerView 上的触摸手势,如下所示。

mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener {

    @Override
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
        return true;
    }

    @Override
    public void onTouchEvent(RecyclerView rv, MotionEvent e) {

    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
});
Run Code Online (Sandbox Code Playgroud)

  • 我选择制作嵌套的 RecyclerViews 并使用您建议的库。谢谢,终于成功了!我在这里的实现:https://github.com/aimanbaharum/RecyclerViewCeption (2认同)
  • 很高兴知道它对你有用。不过,请注意,在您的实现中,您将在 onBindViewHolder 中添加 RecyclerView ItemTouchListener。由于视图被回收,您最终会向 RecyclerView 添加多个侦听器。我建议您将侦听器添加部分移至 ViewHolder 类以提高性能。快乐编码:) (2认同)