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