找出当前显示的片段的最佳方法是什么?

时间:2015-04-01 18:39:04

标签: android focus fragment fragmentmanager

我正在尝试找到类似于FragmentManager.peek()方法的东西。

用例是我需要将屏幕焦点发送到当前加载的Fragment。但是,我发现自己必须手动跟踪当前正在显示的片段,以便我可以告诉它重点关注。

具体情况是我有一个菜单,里面有许多按钮。当用户单击按钮时,我需要将焦点从按钮转移到当前加载的片段中的特定视图 - 但我无法知道当前加载了什么片段,它可能是与菜单项关联的初始片段,或者它可能是一个完全不同的片段,用户已经深入挖掘原始片段...所以我的逻辑必须是

pseudo...
if(currentFragment == navButton.myFragmentType)
   currentFragment.sendFocusToYourFirstRelevantElement()
else
   navButton.loadMyFragmentType()

我的问题是我不知道当前显示的片段是什么,除非我手动跟踪,但那真的很难看。

希望有更原生的解决方案。

1 个答案:

答案 0 :(得分:1)

您必须手动跟踪碎片 想想片段是如何工作的 - 它们被设计为可重用的,并且值得注意的是,一次可以在屏幕上有多个。因此,它并不像仅仅查询当前显示的片段的FragmentManager那么简单,因为它不知道当前显示的片段 。 知识需要的逻辑不能放在FragmentManager中,因为它非常适合您的应用程序。

有关详细信息:What Fragments am I hosting and displaying?