3

我有一个带有单个 Activity 的应用程序,该应用程序使用菜单抽屉进行导航。每次单击菜单抽屉中的项目时,我都会用新的片段替换显示的片段并将其添加到后台堆栈。假设我有 4 个菜单项 ABCDE,以及它们对应的片段。如果用户打开 A,它会在 backstack 中结束,如果用户然后单击 B,然后再次单击 A,则 backstack 看起来像这样:A --> B --> A,并且片段 A 是可见的。

当用户现在使用返回按钮向后导航时,将显示第一个片段 B。如果用户再次导航回来,他将再次看到片段 A(他在看到 B 之前刚刚看到)。在 Activity backstack 中,用户将从 B 离开应用程序,而不是再次到 A,因为那是他刚从哪里来的。

添加时如何删除backstack中的fragment的所有现有backstack条目?我只想在 backstack att al 时间中每个片段最多有一个条目。

如果您不明白我的意思,请随时询问。

4

1 回答 1

0

示例代码:-

        Fragment newFragment;
        FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
        newFragment = new MyFragment();
        transaction.replace(R.id.content_frame, newFragment);
        transaction.addToBackStack(null);
        transaction.commit();

如果您在代码中提到以下行,请删除:-

            transaction.addToBackStack(null);
于 2014-08-04T12:43:44.347 回答