2014-12-03 96 views
3

我正在使用導航抽屜 - android studio 4+的項目框架 - 並且在菜單中有兩個片段。片段替換後仍然會顯示動作項目

其中包含android.support.v4.view.ViewPager的片段。 ViewPager包含兩個片段,其中一個包含菜單。當我使用手勢在viewpager菜單中更改片段時,顯示和消失取決於現在哪個片段可見 - 所有內容都是正確的。

現在流什麼是錯的:

如果我打開第一個片段從抽屜式導航和Swype輸入與菜單片段,然後使用導航抽屜菜單切換到第二個片段仍然會出現 - 爲什麼?我不明白。

編輯:

如果我添加

setHasOptionsMenu(true); 

@Override 
public void onPrepareOptionsMenu(Menu menu) { 
    menu.clear(); 
    super.onPrepareOptionsMenu(menu); 
} 

到片段不應該有菜單,然後問題消失了,但我仍然認爲根源在別處以上解決方案很髒。

回答

1

我知道我遲到了2年纔回答,但這可能會給面臨同樣問題的程序員帶來好處。我有同樣的問題,我只需在OnCreateView()調用

setHasOptionsMenu(true) 

解決它。

這將確保新片段具有其自己的選項菜單,然後可以使用onCreateOptionsMenu()創建。如果您不想有任何選項菜單,請避免實施onCreateOptionsMenu()