4

(首先,我通过 HoloEverywhere 使用 ActionbarSherlock,虽然我不知道这与问题有关。)

我有一个包含三个片段的活动。每个片段都有自己的菜单项,并且它们都共享一些菜单项。我已经从 StackOverflow 了解到,不允许在 Activity 中添加菜单项,然后在 Activity 中添加更多项目Fragment(我尝试过......它会导致奇怪的错误)。所以Activity没有菜单,但每个片段都有。但是,我仍在尝试避免在每个片段的菜单 xml 中重复菜单条目。为此,我为每个片段提供了一个 xml 菜单和一个它们都共享的 xml 菜单。例如,我有:

fragment_1_menu.xml
fragment_2_menu.xml 
all_fragments_menu.xml

并且,Fragment1我正在尝试同时导入fragment_1_menu.xmlall_fragments_menu.xml

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
  inflater.inflate(R.menu.all_fragments_menu, menu);
  inflater.inflate(R.menu.fragment_1_menu, menu);
  super.onCreateOptionsMenu(menu, inflater);
}

当我这样做时,它几乎可以工作,但就我而言,其中一个菜单项all_fragments_menu丢失了。我并不是说它在菜单中是一个空白……我的意思是它根本没有出现在菜单中。XML ID 是唯一的,并且映射到 R.java 中的不同 int。看起来它应该工作。Fragment2除了fragment_2_menu.xml没有项目 外,我做同样的事情,在这种情况下,所有菜单项都按预期显示。

这应该工作吗?我只是错过了什么吗?

4

1 回答 1

0

我想我已经想通了。我犯了一些错误并误解了原因。我需要:

  1. 在 XML 中将菜单showAsAction项更改为“始终”(叹气)。
  2. 在开头调用 menu.clear() onCreateOptionsMenu()
  3. 做“其他事情”,因为虽然这在视觉上修复了菜单,但按钮没有正确报告按下。菜单工作正常,直到我旋转设备,此时按钮停止工作(尽管它们看起来正确)。但我认为这可能与我报告的问题无关。
于 2013-09-27T21:14:26.373 回答