Android NoSaveStateFrameLayout-已具有父级

Android NoSaveStateFrameLayout-已具有父级,android,android-fragments,android-fragmentactivity,fragmentmanager,Android,Android Fragments,Android Fragmentactivity,Fragmentmanager,我试图操作片段remove/add/replace,当我尝试移除并再次添加相同的片段类而不是相同的实例时,问题就开始了 我清除整个活动: for (int i = 0; i < frags.length; i++) { BaseFragment fragment = frags[i]; if (!exsitingFragments.contains(fragment)) continue;

我试图操作片段remove/add/replace,当我尝试移除并再次添加相同的片段类而不是相同的实例时,问题就开始了

我清除整个活动:

        for (int i = 0; i < frags.length; i++) {
            BaseFragment fragment = frags[i];
            if (!exsitingFragments.contains(fragment))
                continue;
            FragmentTransaction ft1 = getSupportFragmentManager().beginTransaction();
            ft1.detach(fragment);
            ft1.remove(fragment);
            ft1.commit();
            getSupportFragmentManager().executePendingTransactions();
        }
现在这很奇怪,因为它只发生在片段中有一个ViewPager视图时,在所有其他情况下,到目前为止,这个逻辑工作正常,奇怪的是这个错误被抛出,因为NoSaveStateFrameLayout已经有一个父视图,而没有任何其他视图

我试过这个:

    ViewGroup rootView = (ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content);
    rootView.removeAllViews();
但是在一个简短的调试之后,我发现NoSaveStateFrameLayout有多个实例,删除一个我可以删除的实例与导致异常的实例不同


知道怎么解决吗?

显然,我添加了两次相同的片段,一次是通过xml,一次是通过代码,在每一个例子中,xml中都有另一个片段,出于某种原因,第一次创建屏幕时,第二次因错误而失败

08-14 15:20:50.086: E/AndroidRuntime(11443): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.view.ViewGroup.addViewInner(ViewGroup.java:3739)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.view.ViewGroup.addView(ViewGroup.java:3610)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.view.ViewGroup.addView(ViewGroup.java:3586)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:770)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at com.mypermissions.core.ui.BaseFragment.onCreateView(BaseFragment.java:83)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
08-14 15:20:50.086: E/AndroidRuntime(11443):    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
    ViewGroup rootView = (ViewGroup) getWindow().getDecorView().findViewById(android.R.id.content);
    rootView.removeAllViews();