隐藏Backstack中的所有片段但仍能够返回

时间:2015-05-01 15:26:45

标签: android android-fragments back-stack fragment-backstack fragmentmanager

我的活动中有一个小布局,我根据用户浏览应用程序添加了碎片。

假设用户如此导航:

活动 - >片段A - >片段B - >片段C - >按钮单击

我希望能够隐藏碎片并再次显示空白活动。

这就是我将片段添加到活动的方式:

protected void addFragment(Fragment fragment)
    {
        getSupportFragmentManager().beginTransaction().replace(R.id.secondary_fragment, fragment).addToBackStack(fragment.getTitle()).commit();
    }

要清除所有碎片,我使用:

getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

但是,有没有办法以某种方式清除片段,如果用户按下它们,它们将能够返回片段C(而不是退出应用程序)?

1 个答案:

答案 0 :(得分:0)

尝试在按下按钮的情况下使用清除堆栈启动活动的新实例(如果我正确地假设这是在您描述的C之后)。这样,第一活动实例仍然具有片段C,第二活动实例将是您喜欢的任何内容(片段A>片段D>片段F)。并且您不需要为任何活动弹出/清除任何后退堆栈。

HTHS