关于Fragment重叠问题分析和解决

2018-02-27  本文已影响32人  vb12

<meta charset="utf-8">

将略懂应用切换到后台之后, 用360来清理内存, 会高概率导致再次启动略懂时页面错乱, 在不同的手机上表现不同, 有的手机是显示空白页面, 有的手机是底部tab页与页面不匹配.

实际上是一个常见的问题:

http://blog.csdn.net/whitley_gong/article/details/51987911

http://blog.csdn.net/chenduyu/article/details/69243393

重要的一点:

当系统内存不足,Fragment 的宿主 Activity 回收的时候,Fragment 的实例并没有随之被回收。Activity 被系统回收时,会主动调用 onSaveInstance() 方法来保存视图层(View Hierarchy),所以当 Activity 通过导航再次被重建时,之前被实例化过的 Fragment 依然会出现在 Activity 中,此时的 FragmentTransaction 中的相当于又再次 add 了 fragment 进去的,hide()和show()方法对之前保存的fragment已经失效了,所以就出现了重叠。

上一篇 下一篇

猜你喜欢

热点阅读