我试图了解使用Fragments的后台堆栈的工作 我在事务中添加了多个片段
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.lay,new fragment2());
ft.replace(R.id.lay,new fragment3());
ft.addToBackStack("multiple");
ft.commit();
然而当我用
弹出窗口时fm.popBackStack("multiple",0);
没有任何反应。
如果我使用旗帜
FragmentManager.POP_BACK_STACK_INCLUSIVE
事情正在发挥作用。
请更新以前不起作用的原因
答案 0 :(得分:0)
查看popBackStack文档中的 名称 参数:
(强调我的)
如果非null,则这是要查找的先前后退状态的名称;如果 发现,所有状态都会弹出。该 POP_BACK_STACK_INCLUSIVE标志可用于控制是否命名 州本身被弹出。如果为null,则仅弹出顶部状态。
所以基本上 0 意味着删除所有以前的状态除 “multiple”事务外, POP_BACK_STACK_INCLUSIVE 表示删除所有以前的状态直至并包括 “multiple”。