图1 图2
先简单说一下我碰到的问题,图1是我的主界面,采用底部导航+FrameLayout来实现Fragment的切换,当app在某一个界面崩溃后,回到了主界面,就出现了Fragment重叠问题,如图2。 因为我之前还有一个项目也是采用的底部导航+FrameLayout,但当初我在开发的时候并没有碰到这种bug,所以打开之前开发的那个app捣鼓了一会,也成功出现了这个bug,当然不是崩溃引起的,而是通过横竖屏切换。
仔细想了一下,无论页面崩溃还是横竖屏切换,都要重走activity的生命周期,就相当于重新打开了这个界面,按道理一切都应该重新开始才对,为什么里面的Fragment没有被销毁。带着疑问我默默打开浏览器百度了一下。看了几篇博客之后,知道了问题所在。这两篇博客比较靠谱点 https://blog.csdn.net/u011734444/article/details/53347265