0

我的活动中有一个小布局,我根据用户在应用程序中导航添加片段。

假设用户这样导航:

活动 -> 片段 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);

但是,有没有办法清除碎片,如果用户按下回,他们将能够返回到 Fragment C(而不是退出应用程序)?

4

2 回答 2

0

尝试在按下按钮时使用清晰的堆栈启动 Activity 的新实例(如果我正确地假设这在您描述的 C 之后出现)。这样,第一个 Activity实例仍将拥有最多 Fragment C,而第二个 Activity实例将是您喜欢的任何内容(Fragment A > Fragment D > Fragment F)。而且您不需要为任何 Activity 弹出/清除任何回栈。

HTH

于 2015-05-01T17:11:13.837 回答
0

也许不是弹出所有的 backStack,而是通过 id 和 setVisibility 获取片段视图到不可见?

于 2015-05-01T15:38:05.507 回答