将 Activity 添加到堆栈时,我可以执行如下所示的操作: How to bring an activity to foreground (top of stack)?
但是,我有一个使用 fragment 的抽屉导航。我通过以下代码将这些 fragment 添加到我的返回堆栈中:
FragmentTransaction transaction = activity.getFragmentManager().beginTransaction();
transaction.replace(R.id.main_fragment, new EntryFragment());
transaction.addToBackStack(activity.mTitle.toString());
transaction.commit();
问题是,我现在需要获取一个已经属于返回堆栈一部分的 fragment ,并将其带到顶部,将当前位于其上方的所有 fragment 从堆栈中删除。本质上是 FLAG_ACTIVITY_REORDER_TO_FRONT
和 FLAG_ACTIVITY_CLEAR_TOP
标志在使用 Activity 时执行的操作。
如何使用 fragment 来实现此目的?
最佳答案
您可以使用以下方法返回到backstack上的Fragment
实例:
activity.getFragmentManager().popBackStackImmediate(tag, 0);
请注意,在您的 FragmentTransaction
中,您需要为提交到后台堆栈的每个 Fragment
定义一个唯一的标记,并检索该标记以返回到此处的 fragment 。
关于java - 将 Fragment 置于堆栈顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542675/