Android 打开特定片段时清除framgnetBackStack
当我打开一个特定的碎片时,我正试图清除后面的障碍。 让我们假设我有fragmentfoo和fragmentbar,我可以在MainActivity中打开它们。此外,我还可以从Foo或Bar打开其他片段。 这是一个简单的方案: 主要活动-Foo->Foo1->Foo2->Foo3 主活动-酒吧->酒吧1->酒吧2->酒吧3 另外,我有一个菜单,所以我可以从任何地方访问Foo和Bar片段:例如,可以从Foo2或Bar3或任何其他片段访问它。 问题是,当我在打开这个片段后输入Foo或Bar时,我想清除backbackback 主要活动-Foo->Foo1->Foo2->Foo3->Bar (清除Backback,这样back按钮将关闭应用程序) 我试图通过这样做来关闭所有碎片:Android 打开特定片段时清除framgnetBackStack,android,android-fragments,Android,Android Fragments,当我打开一个特定的碎片时,我正试图清除后面的障碍。 让我们假设我有fragmentfoo和fragmentbar,我可以在MainActivity中打开它们。此外,我还可以从Foo或Bar打开其他片段。 这是一个简单的方案: 主要活动-Foo->Foo1->Foo2->Foo3 主活动-酒吧->酒吧1->酒吧2->酒吧3 另外,我有一个菜单,所以我可以从任何地方访问Foo和Bar片段:例如,可以从Foo2或Bar3或任何其他片段访问它。 问题是,当我在打开这个片段后输入Foo或Bar时,我想清除
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
}
但它也不起作用。在打开任何片段之前,您只能在“活动”中清除backstack。请您参考一个片段。我给出了同样的答案。你的方法产生了同样的结果。
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);