【发布时间】:2018-07-23 09:04:38
【问题描述】:
我正在尝试在 Android 片段中执行以下用例。我有2个片段。 片段 A -> 片段 B 当用户在 Fragment B 中执行某些操作时,我希望后堆栈如下 片段 A -> 片段 C。因此,当用户按下时,我希望用户返回片段 A。
我已经尝试了以下
mFragmentManager.popBackStackImmediate();
FragmentTransaction fragmentTransaction = fMgr.beginTransaction()
.replace(R.id.base, Fragment_C, "1")
.addToBackStack(null)
.commitAllowingStateLoss();
这里的问题是,在显示片段 C 之前,我可以在短时间内看到片段 A
如果我执行以下操作
mFragmentManager.popBackStackImmediate();
FragmentTransaction fragmentTransaction = fMgr.beginTransaction()
.replace(R.id.base, Fragment_C, "1")
.addToBackStack(null)
.commitNowAllowingStateLoss();
我得到了错误
此事务已被添加到后台堆栈
如果我这样做,我可以让片段 C 出现但是
mFragmentManager.popBackStackImmediate();
FragmentTransaction fragmentTransaction = fMgr.beginTransaction()
.replace(R.id.base, Fragment_C, "1")
.commitNowAllowingStateLoss();
这可行,我看不到片段 A 和片段 C,但后退按钮将用户带出应用程序。那么,是否有可能我们可以弹出片段的返回堆栈,然后将另一个片段添加到返回堆栈而不显示片段 A 并且后退按钮将用户带回片段 A
【问题讨论】:
标签: android android-fragments fragmenttransaction