不废话,直接进入正题
解决方法一:
在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment,否则不做处理。
解决方法二(推荐):

在fragment所在的FragmentActivity中,重写onSaveInstanceState方法,但是不做实现,将super.onSaveInstanceState(outState)注释掉。
原理分析:
当前APP崩溃后首页重启或者从后台再次回到这个app的时候,通过onCreate中的参数savedInstanceState恢复了之前的fragment。此时的FragmentTransaction中的相当于又再次add了fragment进去的,之前保存的fragment也还在。hide()和show()方法对之前保存的fragment已经失效了。所以出现了重叠的现象。
本文介绍了两种解决Fragment在FragmentActivity中出现重叠现象的方法。一种是在onCreate方法中判断savedInstanceState是否为null来决定是否创建新的Fragment;另一种是在FragmentActivity中重写onSaveInstanceState方法并注释掉super调用,以避免Fragment状态被保存导致的问题。
595

被折叠的 条评论
为什么被折叠?



