android – ViewPager中的碎片重新创建

前端之家收集整理的这篇文章主要介绍了android – ViewPager中的碎片重新创建前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带容器的FragmentActivity,我将Fragment与ViewPager放在一起.在ViewPager中我有3个片段:
[MainActivity]
    [ViewPagerFragment]
        [Fragment1][Fragment2][Fragment3]

用户单击Fragment1 / Fragment2 / Fragment3上的按钮时,我将ViewPagerFragment替换为OtherFragment,因此层次结构如下所示:

[MainActivity]
    [OtherFragment]

当我点击Back按钮时,会重新创建ViewPagerFragment,以及它的嵌套片段(Fragment1 / Fragment2 / Fragment3).

有没有办法保存ViewPagerFragment及其嵌套片段的状态?这样碎片会保持状态而不会重新创建?

我为ViewPagerFragment设置了setRetainInstance(true),但似乎没有生效.

解决方法

只需设置: – 参数是ViewPager中的片段数

mViewPager.setOffscreenPageLimit(3);

ViewPager非常热衷于关闭目前没有使用的东西,这正是这里发生的事情.默认行为是ViewPager在要查看的页面的任一侧“保持”一页,并销毁其余页面.因此,在3页视图中,第3页在选择第1页时被破坏,然后在重新选择第2页时重新创建第3页.正如您所注意到的,第2页只有onCreate(..)被调用一次,因为它始终与当前选定的页面相邻或者是当前所选页面.

解决此问题,只需设置ViewPager.setOffscreenPageLimit(2)即可.然后ViewPager将保留所有碎片.显然这对于​​大量碎片来说不是一个好主意,但对于你的情况,它应该没问题.

猜你在找的Android相关文章