【问题标题】:Is RecyclerView better than the viewPager in Android?RecyclerView 比 Android 中的 viewPager 好吗?
【发布时间】:2017-09-20 19:41:29
【问题描述】:
我看了很多viewPager的资料,发现它具有加载上一页和下一页的功能,但是我们仍然可以通过setUserVisibilityHint()停止这种预加载,但仍然我们无法真正停止预加载,因为它只是 hack。
关于RecyclerView 听说我们其实有停止preLoading的功能。因为我非常喜欢了解这些东西,因为它会在我将来处理 tabLayout 时有所帮助。
谢谢
【问题讨论】:
标签:
android
android-layout
android-recyclerview
android-viewpager
【解决方案1】:
由于Android Support Library 24.2.0,您可以使用RecyclerView 和SnapHelper 来获得类似ViewPager 的分页。
RecyclerView 易于实现,并且提供的功能远不止 ViewPager。例如 - 您在 RecyclerView 中有 ItemAnimator。
另外,就像你在问题中所说的,你可以在RecyclerView中控制预加载。
所以,RecyclerView 应该是理想的选择。
注意:另外,在性能方面,RecyclerView 是更好的选择。 ViewPager 在滑动时保持左右页面,即ViewPager 的页面被一次又一次地创建(随时有 3 页)。
但是使用RecyclerView,您可以使用ViewHolder 来使用相同的页面项目。因此,您在任何时候都将拥有一个只有一页的容器,而不是 3 页,您将在其中填写当前页面的详细信息。这意味着您不必一次又一次地膨胀/创建页面容器。
【解决方案3】:
RecyclerView 在性能方面优于 viewPager。另外,与 viewPager 相比,您可以在 recyclerView 中预加载数据。 Api 版本 24.2.0 引入了以下类 SnapHelper 和 LinearSnapHelp 以提供类似于 viewPager 的外观。
查看此链接如何实现 snaphelper snapHelper Example