我在Fragment
内有一个Activity
。此活动包含OptionsMenu
。
我使用FragmentTransaction
启动同一个Fragment类的新实例,当我选择OptionsMenu
时,它显示为double,因为它加载了两次。
如何管理片段之间的OptionsMenu
感谢。
PS:对不起英文
答案 0 :(得分:0)
没有办法这样。您可以处理BackPressed并将自己的自定义菜单显示为新的fragmnet。或者根据您的片段类和内容管理FragmentTransaction不活动内部的选项菜单
答案 1 :(得分:0)
我找到了解决方案,
我只在Activity中创建OptionsMenu。 我也在Activity上获得了OptionsItemsSelected。
当onOptionsItemSelected()出现时,我得到当前的Fragment:
FragmentManager fg = getSupportFragmentManager();
Fragment frag = fg.findFragmentById(R.id.fragmentMap);
我所有的片段都有相同的ID,但我总是将片段放在顶部。 然后,我可以打电话:
frag.onOptionsItemSelected(item);
到Fragment接收,我的UI正确更新。
我希望它有所帮助。
答案 2 :(得分:0)
尝试在setHasOptionsMenu(boolean)
扩展课程中使用Fragment
,
如果设置为true,则FragmentManager
应自动调用当前片段的onOptionsItemSelected
,
设置为false,您可以在Activity onOptionsItemSelected
。
为我工作......:)