当 RecyclerView 位于 NestedScrollView 内时,它的性能优势会被剥夺。是否有同时使用两者的解决方法?
RecyclerView's performance benefits get stripped when it is inside a NestedScrollView. Is there a workaround to use both?
当我将 RecyclerView 放入 NestedScrollView 时。 LayoutManager 和 RecyclerView return getChildCount() 和 getItemCount() 的值相同(它们始终相同,并且始终是 ArrayList/MutableList 的最大值)。
我将一个大型数据集添加到 RecyclerView 的自定义适配器中。说是400张图片缩略图。 getItemCount() 应该 return 400,而 getChildCount() 应该只 return 像 RecyclerView 可以适合屏幕的 ~20 个图像缩略图。
当我在 NestedScrollView 下使用 RecyclerView 时,getChildCount() 总是 returns 400。我认为我的 RecyclerView 没有像预期的那样回收视图,我实际上一次显示了 400 个缩略图,而不是 20.
现在,我知道我应该单独使用 RecyclerView。最有可能的是,删除 NestedScrollView 将使 RecyclerView 以其预期的方式工作。但是我需要实现折叠工具栏,这通常是使用带有 CoordinatorLayout 的 NestedScrollView 完成的。
是否有任何解决方法可以使 RecyclerView 具有折叠工具栏?
我的实现类似于this。
它正在按预期运行。这意味着当您在 NestedScrollView 中添加 ReyclerView 时,RecyclerView 不会回收视图,而是创建所有视图。由于您有大量 400 个项目,因此在 NestedScrollView 中添加回收器视图是不好的。向下滚动时会导致严重的性能问题。
如果你想实现Collapsing Toolbar,你仍然可以用RecyclerView实现同样的效果。我不知道你的布局是什么样的。但是,您可以参考to this article以了解如何完成
当我将 RecyclerView 放入 NestedScrollView 时。 LayoutManager 和 RecyclerView return getChildCount() 和 getItemCount() 的值相同(它们始终相同,并且始终是 ArrayList/MutableList 的最大值)。
我将一个大型数据集添加到 RecyclerView 的自定义适配器中。说是400张图片缩略图。 getItemCount() 应该 return 400,而 getChildCount() 应该只 return 像 RecyclerView 可以适合屏幕的 ~20 个图像缩略图。
当我在 NestedScrollView 下使用 RecyclerView 时,getChildCount() 总是 returns 400。我认为我的 RecyclerView 没有像预期的那样回收视图,我实际上一次显示了 400 个缩略图,而不是 20.
现在,我知道我应该单独使用 RecyclerView。最有可能的是,删除 NestedScrollView 将使 RecyclerView 以其预期的方式工作。但是我需要实现折叠工具栏,这通常是使用带有 CoordinatorLayout 的 NestedScrollView 完成的。
是否有任何解决方法可以使 RecyclerView 具有折叠工具栏?
我的实现类似于this。
它正在按预期运行。这意味着当您在 NestedScrollView 中添加 ReyclerView 时,RecyclerView 不会回收视图,而是创建所有视图。由于您有大量 400 个项目,因此在 NestedScrollView 中添加回收器视图是不好的。向下滚动时会导致严重的性能问题。
如果你想实现Collapsing Toolbar,你仍然可以用RecyclerView实现同样的效果。我不知道你的布局是什么样的。但是,您可以参考to this article以了解如何完成