获取 backstack 中的最新片段 [英] get the latest fragment in backstack
本文介绍了获取 backstack 中的最新片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何获取添加到后台堆栈中的最新片段实例(如果我不知道片段标签和 ID)?
How can I get the latest fragment instance added in backstack (if I do not know the fragment tag & id)?
FragmentManager fragManager = activity.getSupportFragmentManager();
FragmentTransaction fragTransacion = fragMgr.beginTransaction();
/****After add , replace fragments
(some of the fragments are add to backstack , some are not)***/
//HERE, How can I get the latest added fragment from backstack ??
推荐答案
您可以使用 API 级别 14 中引入的 FragmentManager.BackStackEntry
的 getName()
方法. 此方法将返回一个标签,该标签是您使用 addTobackStack(tag)
将 Fragment 添加到后台堆栈时使用的标签.
You can use the getName()
method of FragmentManager.BackStackEntry
which was introduced in API level 14. This method will return a tag which was the one you used when you added the Fragment to the backstack with addTobackStack(tag)
.
int index = getActivity().getFragmentManager().getBackStackEntryCount() - 1
FragmentManager.BackStackEntry backEntry = getFragmentManager().getBackStackEntryAt(index);
String tag = backEntry.getName();
Fragment fragment = getFragmentManager().findFragmentByTag(tag);
您需要确保像这样将片段添加到后台堆栈:
You need to make sure that you added the fragment to the backstack like this:
fragmentTransaction.addToBackStack(tag);
这篇关于获取 backstack 中的最新片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文