【问题标题】:Is RecyclerView better than the viewPager in Android?RecyclerView 比 Android 中的 viewPager 好吗?
【发布时间】:2017-09-20 19:41:29
【问题描述】:

我看了很多viewPager的资料,发现它具有加载上一页和下一页的功能,但是我们仍然可以通过setUserVisibilityHint()停止这种预加载,但仍然我们无法真正停止预加载,因为它只是 hack。

关于RecyclerView 听说我们其实有停止preLoading的功能。因为我非常喜欢了解这些东西,因为它会在我将来处理 tabLayout 时有所帮助。

谢谢

【问题讨论】:

  • 回收视图用于显示列表
  • “捕捉”可能是个问题,但您可以使用 Snaphelper 进行尝试:rubensousa.github.io/2016/08/recyclerviewsnap 另一个问题可能是捕获一个完全填满屏幕的列表项。

标签: android android-layout android-recyclerview android-viewpager


【解决方案1】:

由于Android Support Library 24.2.0,您可以使用RecyclerViewSnapHelper 来获得类似ViewPager 的分页。

RecyclerView 易于实现,并且提供的功能远不止 ViewPager。例如 - 您在 RecyclerView 中有 ItemAnimator

另外,就像你在问题中所说的,你可以在RecyclerView中控制预加载。

所以,RecyclerView 应该是理想的选择。

注意:另外,在性能方面,RecyclerView 是更好的选择。 ViewPager 在滑动时保持左右页面,即ViewPager 的页面被一次又一次地创建(随时有 3 页)。

但是使用RecyclerView,您可以使用ViewHolder 来使用相同的页面项目。因此,您在任何时候都将拥有一个只有一页的容器,而不是 3 页,您将在其中填写当前页面的详细信息。这意味着您不必一次又一次地膨胀/创建页面容器。

【讨论】:

    【解决方案2】:

    本文档将很好地满足您的要求。 - 24.2.0版本的支持库引入了两个新类

    快照助手

    LinearSnapHelper

    enter image description here 应该用于处理 RecyclerView 中的捕捉。

    enter link description here

    【讨论】:

      【解决方案3】:

      RecyclerView 在性能方面优于 viewPager。另外,与 viewPager 相比,您可以在 recyclerView 中预加载数据。 Api 版本 24.2.0 引入了以下类 SnapHelper 和 LinearSnapHelp 以提供类似于 viewPager 的外观。

      查看此链接如何实现 snaphelper snapHelper Example

      【讨论】:

        猜你喜欢
        • 2017-03-02
        • 2017-08-29
        • 2016-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多