popBackStack (int id,int flags) 函数中的参数

Pri*_*rma -2 android android-fragments

我想从按钮单击事件的堆栈中删除FragmentTransaction的最后两个片段。

为此,我经过的Android文档的功能,popBackStack()在那里我也得到了popBackStack()两个不同类型的参数,即popBackStack (int id,int flags)popBackStack (String name,int flags)

根据为功能编写的android文档popBackStack (int id,int flags)It will Pop all back stack states up to the one with the given identifier.

我应该idpopBackStack (int id,int flags)函数的地方传递什么?

Gio*_*gen 5

好吧,我没有尝试这段代码,但是您可以使用以下方法获取最后两个片段:

int index = getActivity().getFragmentManager().getBackStackEntryCount() - 1;
FragmentManager.BackStackEntry lastEntry = getFragmentManager().getBackStackEntryAt(index);
FragmentManager.BackStackEntry secondLastEntry = getFragmentManager().getBackStackEntryAt(index - 1);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用IdFragment从删除它BackStack

popBackStack(lastEntry.Id, 0);
popBackStack(secondLastEntry.Id, 0);
Run Code Online (Sandbox Code Playgroud)

https://developer.android.com/reference/android/app/FragmentManager.BackStackEntry

您是否也尝试在popBackStack()没有参数的情况下只调用两次?