将片段添加到Back堆栈

时间:2014-10-21 17:27:22

标签: android

我试图了解使用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
事情正在发挥作用。 请更新以前不起作用的原因

1 个答案:

答案 0 :(得分:0)

查看popBackStack文档中的 名称 参数:

(强调我的)

  

如果非null,则这是要查找的先前后退状态的名称;如果   发现,所有状态都会弹出。该   POP_BACK_STACK_INCLUSIVE标志可用于控制是否命名   州本身被弹出。如果为null,则仅弹出顶部状态。

所以基本上 0 意味着删除所有以前的状态 “multiple”事务外, POP_BACK_STACK_INCLUSIVE 表示删除所有以前的状态直至并包括 “multiple”