我有一个ViewPager连接到显示三个片段的FragmentPagerAdapter。当ViewPager从当前位置滑动多次时,ViewPager似乎会销毁托管片段的视图。防止ViewPager破坏屏幕外视图
这些视图都是简单的列表,这种优化是完全不必要的,所以我想禁用它。它会导致一些视觉问题,因为这些列表已经应用了布局动画,并且这些动画在它们被销毁和重新创建后正在重播。它还会每次显示滚动条介绍动画(滚动条可以短暂显示以指示滚动是可能的),这可能会分散注意力,并且用户当前的滚动位置在此过程中丢失。
它也不加载第三个片段,直到第一次刷卡发生,这是有问题的,因为每个片段都处理自己的服务调用,并且我更愿意在活动加载时同时启动所有三个片段。延迟第三次服务呼叫并不理想。
有没有什么办法说服ViewPager停止这种行为,并只保留我的所有片段在内存中?
任何想法如何在coverflow上做到这一点? – josephus
你好。在我的工作中,片段/页面是动态创建的,因此存在无限数量的可能片段。这种情况下,通常会达到10或更少。使用这种解决方案到那么多页面会不会使用内存不足?顺便说一下,这些碎片只能保留视图。谢谢! – mahkie
此方法会抛出:“java.lang.IllegalStateException:Fragment已添加:”错误,对于我的应用程序。 – alicanbatur