繁体   English   中英

从后台删除特定的片段

[英]Remove specific fragment from backstack

我有2个片段(片段A,片段B),分别显示在具有不同容器ID(R.id.containerA,R.id.containerB)的横向多窗格中。

我的第一个片段的屏幕流是FragA-> FragA1-> FragA2

我第二个片段的屏幕流是FragB-> FragB1

我将每个片段添加到堆栈。 所以我在后栈中有大约5个片段。

实际导航顺序为FragA-> FragB-> FragA1-> FragB1-> FragA2

现在,当我按下后退按钮时,我希望首先从后堆栈弹出FragB1而不是FragA2。 我知道片段保存在堆栈中,但如何处理这种特殊的多窗格方案?

我应该使用这篇文章中提到的反射吗? Android重新排序片段Backstack

还有其他选择吗?

如果您只是想获取FragB1而不是FragA2,则可以通过获取片段的名称进行检查,如果片段的名称为FragA2,则返回上一步。 您可以使用以下代码获取名称:

FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getActivity().getFragmentManager().getBackStackEntryCount()-1);
String str=backEntry.getName();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM