我有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。谢谢。抱歉我的英文。
答案 0 :(得分:1)
<强>更新强>
对于Fragment
,我认为后端堆栈中没有内置机制可以满足您的要求。
但是,您可以自己跟踪事物并确定当用户点击后退键时要显示哪些片段。我们的想法是覆盖Activity
的{{3}}方法,只使用onBackPressed()而不向后堆栈添加任何内容。
作为旁注,如果您可以使用Activity
代替Fragment
,那么您可以使用FragmentTransaction.replace启动每个Activity
,它的行为就像你想要的。
原始回答:
如果查看FLAG_ACTIVITY_REORDER_TO_FRONT,您会发现可以使用字符串来区分单个FragmentTransaction
。
然后,您可以稍后传入一个字符串并调用addToBackStack (String name)将后端堆栈恢复到所需的状态。