天天看点

Fragment重叠问题处理

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