我有两个片段(片段A,片段B),它们分别以不同的容器ID(R.id.containerA,R.id.containerB)显示在多窗格中。
我的第一个片段的屏幕流是FragA-> FragA1-> FragA2
我的第二个片段的屏幕流是FragB-> FragB1
我将每个片段添加到backstack。所以我在backstack中有大约5个片段。
导航的实际顺序是FragA-> FragB-> FragA1-> FragB1-> FragA2
现在,当我按下后退按钮时,我希望FragB1首先从backstack而不是FragA2中弹出。我知道片段是在堆栈中维护但是如何处理这个特定的多窗格场景?
我应该使用这篇文章中提到的反射吗? Android Reorder Fragment Backstack
还有其他选择吗?
答案 0 :(得分:-1)
如果您只想获取FragB1而不是FragA2,您可以通过获取片段的名称来检查,如果片段的名称是FragA2,则返回一步。您可以使用以下代码获取名称:
FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount()-1);
String str=backEntry.getName();