从堆栈弹出特定片段并删除其他片段

Ken*_*nji 10 stack android fragment

如何从堆栈中弹出特定片段并从片段中删除其他片段?例如,这些是我的碎片,我在E中知道.

A-> B - > C - > D - > E.

想从E回到B和清除C和D.我怎么能这样做?

Smi*_*vda 13

您可以将标记添加到每个片段,同时将它们添加到backstack,然后从backstack进行popfragment,直到找不到包含所需标记的片段.

FragmentManager fm = getFragmentManager();

for (int i = fm.getBackStackEntryCount() - 1; i > 0; i--) {
    if (!fm.getBackStackEntryAt(i).getName().equalsIgnoreCase(tagname)) {
        fm.popBackStack();
    }
    else
    {
     break;
    }
}
Run Code Online (Sandbox Code Playgroud)


him*_*496 7

当你在以下时使用可以调用下面的函数Fragment E:

getFragmentManager().popBackStack("tag", 0);
Run Code Online (Sandbox Code Playgroud)

在这里,tag是因为标签通过同时增加字符串fragment B来backstack.