将 Fragment 置于栈顶

Bring Fragment to top of stack

将活动添加到堆栈时,我可以这样做建议: How to bring an activity to foreground (top of stack)?

但是,我有一个使用片段的导航抽屉。我通过以下代码将这些片段添加到我的后台堆栈中:

FragmentTransaction transaction = activity.getFragmentManager().beginTransaction();
                transaction.replace(R.id.main_fragment, new EntryFragment());
                transaction.addToBackStack(activity.mTitle.toString());
                transaction.commit();

问题是,我现在需要取出一个已经是返回堆栈一部分的片段并将其带到顶部,将当前位于其上方的所有片段从堆栈中删除。基本上 FLAG_ACTIVITY_REORDER_TO_FRONTFLAG_ACTIVITY_CLEAR_TOP 标志在使用活动时会做什么。

如何使用片段完成此操作?

你可以使用下面的方法return到backstack上Fragment的实例:

activity.getFragmentManager().popBackStackImmediate(tag, 0);

请注意,在您的 FragmentTransaction 中,您需要为每个提交到后台堆栈的 Fragment 定义一个唯一的标签,并将该标签检索到 return 到此处的片段。