(首先,我通过HoloEverywhere使用ActionbarSherlock,虽然我不知道这与此问题有关。)
我有三个片段的活动。每个片段都有自己的菜单项,它们都共享一些菜单项。我已经从StackOverflow中了解到,不允许在Activity中添加菜单项,然后在Fragment
中添加更多项目(我曾尝试过...它会导致奇怪的错误)。所以Activity
没有菜单,但每个片段都有。但是,我仍然试图避免重复每个片段的菜单xml中的菜单项。为此,我为每个片段提供了一个xml菜单,并且它们共享了一个xml菜单。例如,我有:
fragment_1_menu.xml
fragment_2_menu.xml
all_fragments_menu.xml
并且,在Fragment1
我正在尝试导入fragment_1_menu.xml
和all_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
没有项目,在这种情况下,所有菜单项都按预期显示。
这应该有用吗?我只是错过了一些东西吗?
答案 0 :(得分:0)
我想我已经弄明白了。我犯了一些错误,误解了原因。我需要:
showAsAction
条款更改为“始终”。onCreateOptionsMenu()
的开头调用menu.clear()。