popBackStack中的参数(int id,int标志)

时间:2018-07-18 07:27:57

标签: android android-fragments

我想从FragmentTransaction Button的堆栈中删除click event的最后两个片段。

为此,我通过功能popBackStack()的{​​{3}},在这里我还得到了带有两种不同类型参数的popBackStack(),即android document和{{3} }

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

我应该在android document函数中的id处传递什么?

1 个答案:

答案 0 :(得分:2)

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

int index = getActivity().getFragmentManager().getBackStackEntryCount() - 1;
FragmentManager.BackStackEntry lastEntry = getFragmentManager().getBackStackEntryAt(index);
FragmentManager.BackStackEntry secondLastEntry = getFragmentManager().getBackStackEntryAt(index - 1);

然后您可以使用Id中的Fragment将其从BackStack中删除。

popBackStack(lastEntry.Id, 0);
popBackStack(secondLastEntry.Id, 0);

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

您是否还尝试不使用参数调用popBackStack()两次?