2013-09-27 43 views
4

(首先,我通過HoloEverywhere使用ActionbarSherlock,但我不知道這與問題有關。)如何將多個菜單充氣到選項欄?

我有一個活動,有三個片段。每個片段都有自己的菜單項,它們都共享一些菜單項。我已經從StackOverflow瞭解到,不允許在活動中添加菜單項,然後在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沒有任何項目,在這種情況下,所有菜單項都按預期顯示。

應該這樣工作嗎?我只是想念一些東西?

回答

0

我想我已經想通了。我犯了一些錯誤,誤解了原因。我需要:

  1. 將術語「showAsAction」更改爲XML(嘆氣)中的「始終」。
  2. 調用menu.clear()在onCreateOptionsMenu()開頭。
  3. 做'其他',因爲,雖然這可以直觀地修復菜單,按鈕不報告正確按下。菜單工作正常,直到我旋轉設備,在這一點按鈕停止工作(雖然他們看起來是正確的)。但我認爲這可能與我報道的問題無關。
相關問題