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()
}
}
}