【问题标题】:Android. RecyclerView track viewed items安卓。 RecyclerView 跟踪查看的项目
【发布时间】:2021-09-30 12:00:36
【问题描述】:
我在 NestedScrollView 中有两个 RecyclerView,我需要跟踪我的 RecyclerViews 的查看项目。但是使用nestedScrollView 回收器模式不起作用并且所有视图将立即加载的问题,因为 wrap_content 需要完整 RecyclerView 的高度,因此它会一次绘制所有子视图。
有没有办法用这种方法跟踪查看的项目?请帮帮我。
【问题讨论】:
标签:
android
android-recyclerview
android-nestedscrollview
【解决方案1】:
永远不要在NestedScrollView 中使用RecyclerView,因为您的ViewHolders 将不会被回收,并且您将面临OutOfMemoeryExceptions 的危险,它可能适用于小尺寸的列表,但随着列表大小的增加,它会变得更糟,
而不是使用一个ScrollView 和2 个RecyclerView 作为孩子
你必须完全删除ScrollView,而不是使用一个RecyclerView和多类型ViewHolders,换句话说,你需要将这两个RecyclerView组合到RecyclerView中。强>
要实现这一点,您可以手动组合这些适配器,也可以使用ConcatAdapter,这取决于您想要什么,如果您想使用ConcatAdapter,这个link 也可以帮助您,但这不是必需的。
那么您可以采用不同的方法来跟踪 viewHolders 的可见性,例如 layoutManager.findFirstVisibleItemPosition() 等。