Vertical RecyclerView 中的 Horizo​​ntal RecyclerViews 丢失位置/状态

Posted

技术标签:

【中文标题】Vertical RecyclerView 中的 Horizo​​ntal RecyclerViews 丢失位置/状态【英文标题】:Horizontal RecyclerViews inside Vertical RecyclerView losing position/state 【发布时间】:2017-01-12 19:49:45 【问题描述】:

我有一个垂直回收器视图,垂直回收器视图的每个项目都有一个水平回收器视图,水平回收器视图的所有项目都有不同的高度和相同的高度,我正在以像素的距离以编程方式滚动回收器,几乎一切工作正常.

所有水平回收器都必须同步,它们必须滚动相同的距离。 我可以在所有可见行中水平滚动,但是当我滚动垂直回收器时,水平回收器视图正在丢失位置。

有什么想法吗?

我正在尝试使用适配器,例如适配器的 onViewRecycled 和其他功能,但还没有成功

【问题讨论】:

【参考方案1】:

在 Recycleview 适配器中,您可以添加以下行。它已经适用于我的代码。

public int getItemViewType(int position) 
        return dataSet.get(position).getId();
    

【讨论】:

谢谢,它有效,我用这个代替; @Override public int getItemViewType(int position) 返回位置; ||现在我只需要滚动所有水平回收器并保持滚动量相等; 在你的 recyclerview 中给每个项目一个不同的位置会对性能造成巨大的影响,因为视图将不再被回收,因为每个位置的每个视图都是唯一的

以上是关于Vertical RecyclerView 中的 Horizo​​ntal RecyclerViews 丢失位置/状态的主要内容,如果未能解决你的问题,请参考以下文章

最关键的还是 RecyclerView 的设置

RecyclerView的万能分割线

安卓recyclerview的基本使用

多个 RecyclerView 不在同一个片段中工作

如何将listview和recyclerview放入linearlayout

简单实现RecyclerView版本的竖向翻页效果