我想从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
处传递什么?
答案 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()
两次?