我试图找到类似于FragmentManager.peek()方法的东西。找出当前显示的片段是什么是最好的方法?
用例是我需要发送屏幕焦点到当前加载的片段。但是,我发现自己不得不手动跟踪当前正在显示的片段,以便我可以告诉它重点关注。
具体情况是,我有一个菜单,其中有一些按钮。当用户点击一个按钮时,我需要将焦点从按钮转移到当前加载的Fragment中的特定视图 - 但我无法知道Fragment当前加载的是什么,它可能是与菜单项关联的初始片段,或者它可能是一个不同的片段完全用户到达已经更深入地挖掘原有的片段......所以我的逻辑必须是
pseudo...
if(currentFragment == navButton.myFragmentType)
currentFragment.sendFocusToYourFirstRelevantElement()
else
navButton.loadMyFragmentType()
我的问题是,我不知道什么是当前显示的片段是,除非我手动跟踪,但这真的很难看。
希望有更原生的解决方案。
谢谢...这是非常令人失望的。但是......看起来你是对的。我认为您可能需要考虑修改您的其他答案,以利用Fragment onResume()来避开后退按钮......在执行过程中,如果听到Back可能会导致意外的结果。但是,从backstack回来时,onResume()可靠地调用片段......这是我的(丑陋的)解决方案atm。 – 2015-04-01 19:06:44
确实如此,onResume将始终被调用。谢谢! – athingunique 2015-04-01 19:16:37