Android 在片段事务完成之前,避免片段弹出堆栈

Android 在片段事务完成之前,避免片段弹出堆栈,android,fragment,Android,Fragment,图像显示我有3个片段:A,B,C 我的片段将替换为活动中的框架布局。 每个片段的每个事务都有用于输入和输出的自定义动画(滑入和滑出),我的片段将推回到堆栈。 在我的活动的onBackPress方法中,如果可用,我会弹出片段。 我的问题是:如果我从片段A转到片段B,动画开始,我立即按下后退按钮,我的应用程序就会崩溃,出现以下异常: 致命异常:主 过程: java.lang.IllegalStateException:指定的子级已具有父级。必须首先对子级的父级调用removeView()。 在and

图像显示我有3个片段:A,B,C 我的片段将替换为活动中的框架布局。 每个片段的每个事务都有用于输入和输出的自定义动画(滑入和滑出),我的片段将推回到堆栈。 在我的活动的onBackPress方法中,如果可用,我会弹出片段。 我的问题是:如果我从片段A转到片段B,动画开始,我立即按下后退按钮,我的应用程序就会崩溃,出现以下异常:

致命异常:主 过程: java.lang.IllegalStateException:指定的子级已具有父级。必须首先对子级的父级调用removeView()。 在android.view.ViewGroup.addViewInner(ViewGroup.java:4405) 在android.view.ViewGroup.addView(ViewGroup.java:4246)中 在android.view.ViewGroup.addView(ViewGroup.java:4186) 在android.view.ViewGroup.addView(ViewGroup.java:4159)中 在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1001) 在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1165) 位于android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:1747) 位于android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1631) 在android.app.FragmentManagerImpl$2.run(FragmentManager.java:570) 位于android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1572) 在android.app.FragmentManagerImpl$1.run(FragmentManager.java:483) 位于android.os.Handler.handleCallback(Handler.java:751) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:154) 位于android.app.ActivityThread.main(ActivityThread.java:5969) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:801) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691)

我的片段类代码是:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (view == null) {
        view = inflater.inflate(R.layout.fragment_contact, container, false);
        initViews(view);
    }

    return view;
}
在事务运行之前是否可以避免popBackStack?还是更好的解决方案