aga*_*mov 6 android fragment android-fragments android-viewpager
我有一个FragmentActivity集装箱,在这里我把Fragment用ViewPager.在ViewPager我有3 Fragments:
[MainActivity]
[ViewPagerFragment]
[Fragment1][Fragment2][Fragment3]
Run Code Online (Sandbox Code Playgroud)
当用户单击Fragment1/ Fragment2/ 上的按钮时Fragment3,我替换了ViewPagerFragmentwith OtherFragment,因此层次结构如下所示:
[MainActivity]
[OtherFragment]
Run Code Online (Sandbox Code Playgroud)
当我点击Back按钮,ViewPagerFragment重新创建,以及它的嵌套Fragments(Fragment1/ Fragment2/ Fragment3).
有没有办法保存状态ViewPagerFragment及其嵌套片段?这样碎片会保持状态而不会重新创建?
我已经设定setRetainInstance(true)了ViewPagerFragment,但似乎没有生效.
Aug*_*cis 17
只需设置: - 参数是ViewPager中的片段数
mViewPager.setOffscreenPageLimit(3);
ViewPager非常热衷于关闭目前没有使用的东西,这正是这里发生的事情.默认行为是ViewPager在要查看的页面的任一侧"保持"一页,并销毁其余页面.因此,在3页视图中,第3页在选择第1页时被破坏,然后在重新选择第2页时重新创建第3页.正如您所注意到的,第2页只有onCreate(..)被调用一次,因为它始终与当前选定的页面相邻或者是当前所选页面.
要解决此问题,只需设置ViewPager.setOffscreenPageLimit(2)即可.然后ViewPager将保留所有碎片.显然这对于大量碎片来说不是一个好主意,但对于你的情况,它应该没问题.
| 归档时间: |
|
| 查看次数: |
2975 次 |
| 最近记录: |