Android 解决 Fragment 懒加载并嵌套使用时子 Fragment 的 View 不填充
2018-01-18 14:29
405 查看
在前文 Android ViewPager 中 Fragment 懒加载 中介绍了 Fragment 懒加载的实现,在后期项目运用中对 Fragment 中 View 的加载也实现了在首次展示时才进行填充,结果遇到了如下一个问题:
当 Fragment 被销毁重建时,其中嵌套的 Fragment 界面没有被展示,但是
研究后发现,在 Fragment 中嵌套使用 Fragment 时,当父 Fragment 被销毁时,子 Fragment 不会被销毁。
我们平时加载 Fragment 时会通过
解决办法:在父 Fragment 的 savedInstanceState 中移除保存的子 Fragment 的 TAG 信息。
当 Fragment 被销毁重建时,其中嵌套的 Fragment 界面没有被展示,但是
isAdd()结果为 true。
研究后发现,在 Fragment 中嵌套使用 Fragment 时,当父 Fragment 被销毁时,子 Fragment 不会被销毁。
我们平时加载 Fragment 时会通过
findFragmentByTag进行复用,这便导致父 Fragment 重建时会根据保存的子 Fragment 的 TAG 去直接加载子 Fragment,而不是重建一个子 Fragment。此时子 Fragment 由于懒加载机制,它的 View 不会再次被填充到父 Fragment 中。也就是在重建后的父 Fragment 中,子 Fragment 会被 onAttach,但它的 View 不会被 add。
解决办法:在父 Fragment 的 savedInstanceState 中移除保存的子 Fragment 的 TAG 信息。
@Override public void onCreate(@Nullable Bundle savedInstanceState) { if (savedInstanceState != null) { /** * key 参考 {@link FragmentActivity.FRAGMENTS_TAG} */ savedInstanceState.remove("android:support:fragments"); } super.onCreate(savedInstanceState); }
相关文章推荐
- Android开发ViewPager的预加载和Fragment的销毁问题,以及tabLayout+ViewPager的使用,tablayout平板适配问题解决
- Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
- Android使用Fragment,不能得到Fragment内部控件,findViewById()结果是Null--已经解决
- Android解决Fragment中使用SurfaceView切换时闪一下黑屏的问题
- android开发,使用fragment加载webview,加载出现1秒空白。
- 嵌套Fragment的使用及遇到The specified child already has a parent. You must call removeView()问题的解决
- Android viewpager+fragment实现动态加载碎片(fragment重复使用)
- 使用getChildFragmentManager解决Fragment嵌套ViewPager出现空白
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
- 嵌套Fragment的使用及遇到The specified child already has a parent. You must call removeView()问题的解决
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
- Android:Android Fragment嵌套使用存在的一些BUG以及解决方法
- 【Fragment使用】(二)Android之取消ViewPage+Fragment的预加载
- Android textview 加载html语言(解决超链接不能使用的问题)
- 【转】Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信
- 使用观察者模式解决ViewPager加载照片中更新其他Fragment内容
- Android解决ViewPager嵌套Fragment,Fragment嵌套ViewPager滑动冲突
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法