增加Android ViewPager的性能

我正在创建一个2.2版本的Android应用程序。我仍然想使用android.support-v4.jar中提供的ViewPager。

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

向上和向下滚动WebView的效果很好,但ViewPager中页面之间的滑动行为非常不平滑,并且不像滚动WebView那样流畅。

有没有什么方法可以提高ViewPager的滚动性能,也许像BaseAdapter中的ConvertView?

我猜我可以加载在后台线程中的网址,但从我听说这不是最佳实践。

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

0
额外 编辑
意见: 1

2 答案

我意识到你可以使用

viewPager.setOffscreenPageLimit(items.size());

保持所有内容预装在内存中,并在滚动时避免“冻结/延迟”性能。

0
额外
你可以,这一切都取决于你将拥有多少物品,以及每个视图的“UI重量”如何。我所做的确保不会发生这样的事情,就是将项目的大小硬编码为更高的内容,然后对我的应用程序进行实际操作。
额外 作者 Slickelito,
这可能是我遇到的最糟糕的解决方案。你不想在内存中加载所有的页面,因为UI需要更多的内存,只需在内存中保存一个POJO列表。相反,别的东西会导致你的加载速度变慢,可能会考虑评估你如何创建UI。您可能需要考虑回收页面。
额外 作者 agrosner,
只是一个问题,也许是一个白痴问题:对所有viewpager的物品进行预加载不会太重吗?
额外 作者 andrea.rinaldi,
我的意思是,我不能得到像OutOfMemory或类似的错误吗?
额外 作者 andrea.rinaldi,
我明白了......我说过这些事情是因为我开始了一个应用程序,它肯定会在ViewPager的每个片段中加载大量图像(高质量,模糊,像这样的东西)。但是,我会管理它们,因为它需要完成:)
额外 作者 andrea.rinaldi,

您应该考虑重新使用 Fragments ,方法是提供一些方法重用ViewPager中的现有片段,并使用新数据填充或刷新它的UI。

0
额外