Android Viewpager+;残缺的PageRadapet+;碎片+;Listview=速度极其缓慢的应用程序

Android Viewpager+;残缺的PageRadapet+;碎片+;Listview=速度极其缓慢的应用程序,android,android-fragments,android-viewpager,google-play,viewpagerindicator,Android,Android Fragments,Android Viewpager,Google Play,Viewpagerindicator,在我的布局中有一个viewpager,这个viewpager包含一组10个片段。每个片段都有一个异步填充的列表视图。我目前使用FragmentPagerAdapter作为viewpager的适配器,填充列表视图的API调用在每个片段的onCreateView中完成。刷卡速度非常慢,由于内存问题,应用程序自动关闭 如何像Google Play那样实现平滑和响应(viewpager+listview)? 平滑滑动+列表项的良好缓存 有许多方法可以提高与列表视图集成的查看页面的性能 首先,将Pager

在我的布局中有一个viewpager,这个viewpager包含一组10个片段。每个片段都有一个异步填充的列表视图。我目前使用FragmentPagerAdapter作为viewpager的适配器,填充列表视图的API调用在每个片段的onCreateView中完成。刷卡速度非常慢,由于内存问题,应用程序自动关闭

如何像Google Play那样实现平滑和响应(viewpager+listview)? 平滑滑动+列表项的良好缓存


有许多方法可以提高与
列表视图集成的
查看页面的性能

首先,将
PagerAdapter
FragmentPagerAdapter
更改为
FragmentStatePagerAdapter
。不同之处在于,您在寻呼机中加载了10页。如果您浏览了所有页面,管理器只会将页面放在
onStop()
中,因此它会保留空间。但是,使用
FragmentStatePagerAdapter
将销毁这些页面,但将使用
onSaveInstanceState
方法保存它们的实例。所以,当你回来的时候,它不会花太多时间来加载,你将节省内存

通常,
FragmentPagerAdapter
与3页或更少的页面一起使用

第二种提高性能的方法(但它消耗电池的速度更快)是将这一行添加到应用程序标记下的
AndroidManifest.xml

android:hardwareAccelerated="true"
第三种方法是检测刷卡手势。您可以通过实现
onPageChangeListener
来实现这一点,然后在实现的方法
onPageScrollStateChanged
中检查页面是否处于
空闲状态
,然后添加
列表视图
。否则,请停止使用
列表视图
,并滚动到下一页。这是一个更好的例子


希望其中的一些要点能帮助您实现更好的性能。

我想在这个问题中补充一件事,我能在片段中实现viewpager吗?如果是,那么如何实现?您好,如果我使用onPageChangeListener,那么每次我滑动页面时,它都会进行api调用并填充它。如何缓存结果。我的api调用将返回一个JSON。