我将Android应用程序移植到蜂窝上,为了使用片段,我做了很大的重构。在以前的版本中,当我按下“主页”按钮时,我通常会执行一次操作ACTIVITY_CLEAR_TOP以重置后退堆栈。现在我的应用只是一个带有多个片段的Activity,因此当我按下Home按钮时,我只是替换了其中的一个片段。如何不用startActivity与ACTIVITY_CLEAR_TOP标志一起使用就清除我的后堆栈?
3 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
为@Warpzit的评论提供答案,并使其他人更容易找到。
采用:
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
莫回无
TA贡献1865条经验 获得超7个赞
充分尊重所有有关方面;看到你们中有多少人可以用一个简单的方法清除整个碎片堆,我感到非常惊讶
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
根据Android文档(关于name论点-所主张的工作建议中的“空”)。
如果为null,则仅弹出最高状态
现在,我的确意识到我不了解您的特定实现(例如,在给定的时间点,您在后台堆栈中有多少个条目),但是当期望得到一个明确定义的答案时,我会全力以赴在更广泛的设备和供应商中的行为:
(供参考,与此同时)
FragmentManager fm = getFragmentManager(); // or 'getSupportFragmentManager();'
int count = fm.getBackStackEntryCount();
for(int i = 0; i < count; ++i) {
fm.popBackStack();
}
- 3 回答
- 0 关注
- 379 浏览
添加回答
举报
0/150
提交
取消