我一直在为viewPager阅读很多内容,发现它具有加载上一页和下一页的功能,但我们仍然可以通过 setUserVisibilityHint()停止此预加载,但仍然我们无法真正停止预加载,因为它只是黑客攻击。
关于RecyclerView我听说我们实际上有停止预加载的功能。因为我非常喜欢了解这些内容,因为它在处理tabLayout时对我的未来有所帮助。
由于
答案 0 :(得分:2)
自Android Support Library 24.2.0
以来,您可以RecyclerView
使用SnapHelper
来获取ViewPager
中的分页。
RecyclerView
易于实施,并提供比ViewPager更多的功能。例如 - 您在ItemAnimator
中有RecyclerView
。
此外,正如您在问题中所述,您可以在RecyclerView
中控制预加载。
所以,RecyclerView
应该是理想的选择。
注意:另外,性能方面,RecyclerView
是更好的选择。 ViewPager
在滑动时保持左右页面,即ViewPager
页面一次又一次地创建(任何时候都有3页)。
但是使用RecyclerView
,您可以使用ViewHolder
来使用相同的页面项。因此,您将在任何时间只有一页的容器,而不是3页,您将填写当前页面的详细信息。这意味着您不必一次又一次地膨胀/创建页面容器。
答案 1 :(得分:2)
本文档将为您的要求提供良好的答案。 - 支持库的24.2.0版本引入了两个新类
SnapHelper
和
LinearSnapHelper
enter image description here应该用于处理RecyclerView中的捕捉。
答案 2 :(得分:1)
RecyclerView优于viewPager性能。另外,与viewPager相比,您可以在recyclerView中预加载数据。 Api版本24.2.0引入了以下类SnapHelper和LinearSnapHelp来为viewPager提供外观。
请参阅此链接,了解如何实施snaphelper snapHelper Example