2017-04-12 67 views
0

我需要避免顯示另一個片段中的菜單項。 這是在片段A我需要菜單項。在片段B中,我不需要它。但是,當我嘗試從片段A轉換到片段B.片段A的菜單項顯示在片段B中。如何解決衝突?顯示在另一個片段中的一個片段的菜單項

+0

這很可能是由於您的片段中使用了'onCreateOptionsMenu' –

+0

檢查此[鏈接](http://stackoverflow.com/a/21498812/5882539)爲您的解決方案 –

回答

3

我也面臨這個問題,我做這個

在onCreate方法解決它做到這一點

@Override 
public void onCreate(Bundle savedInstanceState) { 
    setHasOptionsMenu(true); 
    super.onCreate(savedInstanceState); 
} 

在onCreateOptionMenu爲此

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
} 
0

Possible duplicate?

@Override public void onPrepareOptionsMenu(Menu menu) { 
    MenuItem item = menu.findItem(R.id.action_search); 
    item.setVisible(false); 
} 

,並在片段的onCreate()

setHasOptionsMenu(true); 
1

在該片段中,你不希望顯示任何菜單選項,您需要在OnCreate()setHasOptionsMenu(false);, 這樣的:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(false); 
} 

然而,顯示您想要隱藏的菜單屬於MainActivity。這就是它總是顯示的原因。既然你想在片段級別控制菜單,我的建議是從活動中刪除菜單代碼並在Fragment中執行它。活動和片段可以有自己的獨立菜單,如android開發人員網站中所述 - https://developer.android.com/guide/topics/ui/menus.html#options-menu