2013-03-07 50 views
2

我目前使用的ViewPagerFragmentStatePager适配器,大约25个不同的片段(和不同的relativelayouts)。当我滚动时,除了当我声明viewpager.setoffscreenpagelimit(25)时,我通常会注意到在滑动到某些视图时的实质滞后。有没有办法提高这个viewpager的性能,而不是一直加载所有页面?Android Viewpager性能

+0

你注意到实质性的东西?你总是可以尝试的一件事是在'offscreenpagelimit'参数中试验不同的数字,这意味着问题页面在你到达之前将被加载。 – 2013-03-07 11:19:37

+0

对不起,我注意到经济滞后 – user1437481 2013-03-07 11:20:37

回答

3

使用ViewPager开箱即可加载最多三个片段/视图。留在那个号码。不是ViewPager很慢,你在代码中做了一些让它变慢的东西。你的任何Fragment是否执行任何阻塞或CPU消耗任务?例如加载Bitmaps?你有一些可以在AsyncTask中完成的解析吗?也许你可以把这些东西放在哪里并保存到数据库中,然后当你加载Frament时,如果从数据库中读取数据,它将保持非常干净和高效。

+0

是的,每个片段都有不同的相对布局和一个不同的背景,我加载的onCreateView()。其他,因为我只有几个按钮和图像(也加载onCreateView()) – user1437481 2013-03-07 11:23:31

+0

你试过一个真实的设备,如果是这样,哪个?尝试模拟器通常非常缓慢。 – 2013-03-07 11:24:36

+0

我正在使用几个设备,一个nexus 7和一个星系nexus – user1437481 2013-03-07 11:26:01

1

您能否为您的问题添加更多细节?例如,你在每个页面上做什么?

您是否更新到最新Android Support Library

变更为V4支持库:

为ViewPager
  • 增强的交互行为。
  • 修复了一个可能导致ViewPager选择错误页面的错误。
  • 在ViewPager的布局过程中修复了removeView()方法的使用。
  • 解决了使用后退按钮关闭的SearchViewCompat不会清除搜索文本的问题。此修补程序仅适用于主机API级别14和更高。

您一定要记住FragmentStatePagerAdapter自动保存页面并在不使用时将其删除。所以如果你刷卡速度非常快,会有很多加载/卸载页面。您可以尝试增加内存中加载的页面数量。

+0

我还没有更新到最新的支持库,将尝试并留下一些反馈。我基本上有一些相对布局,每个都有不同的图像作为背景,有些图像作为交互点,这就是所有。我没有在ui线程中做任何与网络相关的任务。 – user1437481 2013-03-07 11:30:11