我正在尝试找到类似于FragmentManager.peek()方法的东西。
用例是我需要将屏幕焦点发送到当前加载的Fragment。但是,我发现自己必须手动跟踪当前正在显示的片段,以便我可以告诉它重点关注。
具体情况是我有一个菜单,里面有许多按钮。当用户单击按钮时,我需要将焦点从按钮转移到当前加载的片段中的特定视图 - 但我无法知道当前加载了什么片段,它可能是与菜单项关联的初始片段,或者它可能是一个完全不同的片段,用户已经深入挖掘原始片段...所以我的逻辑必须是
pseudo...
if(currentFragment == navButton.myFragmentType)
currentFragment.sendFocusToYourFirstRelevantElement()
else
navButton.loadMyFragmentType()
我的问题是我不知道当前显示的片段是什么,除非我手动跟踪,但那真的很难看。
希望有更原生的解决方案。
答案 0 :(得分:1)
您必须手动跟踪碎片 想想片段是如何工作的 - 它们被设计为可重用的,并且值得注意的是,一次可以在屏幕上有多个。因此,它并不像仅仅查询当前显示的片段的FragmentManager那么简单,因为它不知道当前显示的片段 。 知识需要的逻辑不能放在FragmentManager中,因为它非常适合您的应用程序。