小编典典

使用片段清除回栈

all

我将我的 Android 应用程序移植到了蜂巢中,并且为了使用 Fragments,我做了一个很大的重构。在我以前的版本中,当我按下 Home
按钮时,我会执行 aACTIVITY_CLEAR_TOP以重置后退堆栈。

现在我的应用程序只是一个带有多个片段的 Activity,所以当我按下 Home
按钮时,我只需替换其中的一个片段。如何在不必使用startActivity标志的ACTIVITY_CLEAR_TOP情况下清除我的后台堆栈?


阅读 70

收藏
2022-05-10

共1个答案

小编典典

我最终只是使用:

FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {    
    fm.popBackStack();
}

但同样可以使用类似的东西:

((AppCompatActivity)getContext()).getSupportFragmentManager().popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE)

这将弹出所有状态到指定的状态。然后你可以用你想要的替换片段

2022-05-10