将 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_FRONT
和 FLAG_ACTIVITY_CLEAR_TOP
标志在使用活动时会做什么。
如何使用片段完成此操作?
你可以使用下面的方法return到backstack上Fragment
的实例:
activity.getFragmentManager().popBackStackImmediate(tag, 0);
请注意,在您的 FragmentTransaction
中,您需要为每个提交到后台堆栈的 Fragment
定义一个唯一的标签,并将该标签检索到 return 到此处的片段。
将活动添加到堆栈时,我可以这样做建议: 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_FRONT
和 FLAG_ACTIVITY_CLEAR_TOP
标志在使用活动时会做什么。
如何使用片段完成此操作?
你可以使用下面的方法return到backstack上Fragment
的实例:
activity.getFragmentManager().popBackStackImmediate(tag, 0);
请注意,在您的 FragmentTransaction
中,您需要为每个提交到后台堆栈的 Fragment
定义一个唯一的标签,并将该标签检索到 return 到此处的片段。