gpt4 book ai didi

android - RecyclerView 正在一次为所有项目创建 ViewHolders

转载 作者:行者123 更新时间:2023-12-03 09:40:10 24 4
gpt4 key购买 nike

我有主 RecyclerView,其中包含其他 RecyclerViews(我们称它们为 subRecyclerViews)。 subRecyclerViews 的数量基于从服务器接收到的数据。问题是,每当 subRecyclerView 即将变得可见时,它会立即为其所有项目创建 ViewHolders(而不是仅为可见项目创建 ViewHolders)。

在我调用的 MainRecyclerViewAdapter onBindViewHolder() 方法中

subRecyclerViewAdapter.setData(data);
subRecyclerView.notifyDataSetChanged();

这会导致滞后,因为 subRecyclerView 正在为其所有项目调用 onCreateViewHolder() 和 onBindViewHolder() 方法。

我使用的 RecyclerView 版本是
com.android.support:recyclerview-v7:25.1.1

问题是,有没有办法告诉 subRecyclerView 它不需要为尚不可见的项目创建 ViewHolders?另外,这是 RecyclerView 中的错误还是我做错了什么?

最佳答案

如今,一种不使用“subRecyclerViews”的解决方案是使用一个带有 ConcatAdapter 的 recyclerView。

val firstAdapter: FirstAdapter
val secondAdapter: SecondAdapter
val thirdAdapter: ThirdAdapter
val concatAdapter = ConcatAdapter(firstAdapter, secondAdapter,
thirdAdapter)
recyclerView.adapter = concatAdapter

关于android - RecyclerView 正在一次为所有项目创建 ViewHolders,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42029316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com