fragment重叠一般是由于Activity重建导致的,比如横竖屏切换。
网上一般给出的解决方法是配置android:configChanges或者add的时候增加tag参数。
不过这两种方式都有局限性,这里给出个人觉得更通用的处理方式:
在初始化添加fragment之前,先清除当前Activity已有的fragment。
代码如下(kotlin代码):
fun destroyFragment() {
var fragmentList = supportFragmentManager.fragments
if (fragmentList != null) {
for (f in fragmentList) {
supportFragmentManager.beginTransaction().remove(f).commitAllowingStateLoss()
}
}
}