【问题标题】:Increase Android ViewPager performance提高 Android ViewPager 性能
【发布时间】:2015-03-12 23:34:18
【问题描述】:

我正在创建一个目标为 2.2 的 android 应用程序。我还是想用android.support-v4.jar中提供的ViewPager。

我将 FragmentPagerAdapter 与 Fragment 结合使用来显示内容。 每个片段都包含一个 WebView,显示一些 html 数据。

向上和向下滚动 WebView 效果很好,但在 ViewPager 中的页面之间滑动表现得非常生涩,根本不像滚动 WebView 那样流畅。

有什么方法可以提高 ViewPager 的滚动性能,比如 BaseAdapter 的 ConvertView?

我猜我可以在后台线程中加载网址,但据我所知,这不是最佳做法。

任何建议都会很棒,谢谢。

【问题讨论】:

    标签: android performance android-viewpager


    【解决方案1】:

    我意识到你可以使用

    viewPager.setOffscreenPageLimit(items.size());
    

    将所有项目预加载在内存中并避免滚动时的“冻结/滞后”性能。

    【讨论】:

    • 只是一个问题,也许是一个白痴问题:预加载所有viewpager的项目会不会太重?
    • 我的意思是,我不能收到类似 OutOfMemory 或类似的错误吗?
    • 您可以,这完全取决于您将拥有多少项目以及每个视图的“UI 重量”程度。为了确保不会发生这种情况,我所做的就是将项目的大小硬编码为比我的应用程序更现实的大小。
    • 我明白.. 我说这些话是因为我正在启动一个应用程序,它肯定会在 ViewPager 的每个片段中加载大量图像(高质量、模糊、类似的东西)。但是,我会根据需要管理它们:)
    • 这可能是我遇到的最糟糕的解决方案。您不希望将所有页面加载到内存中,因为 UI 会占用更多内存,而只是在内存中保留 POJO 列表。相反,其他原因导致您的加载速度变慢,并且可能考虑评估您创建 UI 的方式。您可能需要考虑回收页面。
    【解决方案2】:

    您应该考虑通过提供一些方法来重用 ViewPager 中的现有片段并使用新数据填充或刷新其 UI,从而重用 Fragments

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 2012-06-29
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多