如果之前已经调用过,如何添加相同的片段?

时间:2014-11-04 01:49:37

标签: android fragment

我有6个按钮和一个容器。当我按下按钮和其他按钮时,这完全添加了背斜,但是当我按下之前调过的按钮时,这也添加了。那么..如果已经添加了堆栈,如何在替换新片段时删除旧片段?谢谢。它与Instagram App的逻辑相同。

例如:

片段A,B,C,D,E,F是我的6个按钮。

按下时按下A,B,D,F,F,D,B,A ......很好。但是...按下A,B,C,B,C,B,F并然后预先 - > F,B,C,B,C,B,A何时应直接为F,B,C,A。谢谢。抱歉我的英文。

1 个答案:

答案 0 :(得分:1)

<强>更新

对于Fragment,我认为后端堆栈中没有内置机制可以满足您的要求。

但是,您可以自己跟踪事物并确定当用户点击后退键时要显示哪些片段。我们的想法是覆盖Activity的{​​{3}}方法,只使用onBackPressed()而不向后堆栈添加任何内容。

作为旁注,如果您可以使用Activity代替Fragment,那么您可以使用FragmentTransaction.replace启动每个Activity,它的行为就像你想要的。

原始回答:

如果查看FLAG_ACTIVITY_REORDER_TO_FRONT,您会发现可以使用字符串来区分单个FragmentTransaction

然后,您可以稍后传入一个字符串并调用addToBackStack (String name)将后端堆栈恢复到所需的状态。