1

我有Fragment一个Activity. 此活动包含OptionsMenu.

我使用 aFragmentTransaction来启动同一个 Fragment 类的新实例,当我选择 时OptionsMenu,它以 double 形式出现,因为它加载了两次。

如何管理片段之间的 OptionsMenu

谢谢。

PS:对不起英文

4

3 回答 3

0

没有办法。您可以处理 BackPressed 并将您自己的自定义菜单显示为新的碎片网络。或者根据您的片段类和内容在 FragmentTransaction 不活动中管理您的选项菜单

于 2011-08-24T15:59:18.763 回答
0

尝试setHasOptionsMenu(boolean)在你的Fragment扩展类中使用,如果设置为 trueFragmentManager应该自动调用你当前的片段onOptionsItemSelected,它设置为 false 你可以在你的 Activity 中手动调用这些回调onOptionsItemSelected

为我工作... :)

于 2012-03-21T21:02:17.050 回答
0

我找到了解决办法

我只在 Activity 中创建 OptionsMenu。我也得到了 Activity 上的 OptionsItemsSelected。

当 onOptionsItemSelected() 发生时,我得到当前的 Fragment 如下:

FragmentManager fg = getSupportFragmentManager();
Fragment frag = fg.findFragmentById(R.id.fragmentMap);

我所有的 Fragment 都具有相同的 id,但我总是将 Fragment 放在顶部。然后,我可以打电话:

frag.onOptionsItemSelected(item);

到 Fragment 接收和我的 UI 正确更新。

我希望它有帮助。

于 2011-08-25T08:18:00.400 回答