RecyclerView的性能优势在NestedScrollView中时被剥夺。有没有解决方法可以同时使用两者?



当我将RecyclerView放入NestedScrollView时。LayoutManager和RecyclerView为getChildCount((和getItemCount((返回相同的值(它们总是相同的,并且总是ArrayList/MutableList的最大值(。

我在RecyclerView的自定义适配器中添加了一个大型数据集。假设它是400个图像缩略图。getItemCount((应该返回400,而getChildCount((只应该返回大约20个RecyclerView可以放在屏幕上的图像缩略图。

当我在NestedScrollView下使用RecyclerView时,getChildCount((总是返回400。我认为我的RecyclerView并没有像它应该的那样回收视图,而且我实际上一次显示了400个缩略图,而不是20个。

现在,我知道我应该自己使用RecyclerView。最有可能的是,删除NestedScrollView将使RecyclerView按预期工作。但我需要实现折叠工具栏,这通常是用带有CoordinatorLayout的NestedS克鲁llView完成的。

有什么解决办法可以让RecyclerView有一个折叠的工具栏吗?

我的实现与此类似。

它按预期工作。这意味着当你在NestedScrollView中添加ReyclerView时,RecyclerView将不会回收视图,而是会创建所有视图。由于您有一个400个项目的大集合,所以在NestedScrollView中添加回收器视图是不好的。向下滚动时会导致严重的性能问题。

如果你想实现折叠工具栏,你仍然可以用RecyclerView来实现。我不知道你的布局是什么样子。然而,你可以参考这篇文章,看看如何做到

最新更新