2017-08-23 64 views
0

我試圖隱藏OptionsMenu在相同的活動依賴於導航片段之間: -如何在膨脹之前獲得OptionsMenu?

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.result, menu); 
    return true; 

} 

而且我隱藏它通過取決於片段的位置,如:

if (newStepPosition == 0) { 
     if (menu != null){ 
      menu.setGroupVisible(R.id.resultGroup, false); 
     } 
    } 
    if (newStepPosition == 1) { 
      if (menu != null){ 
      menu.setGroupVisible(R.id.resultGroup, true); 
     } 

    } 

我的問題是,我必須看到選項菜單,我第一次創建活動,然後隱藏並出現線程工作,如何避免這種情況?

我需要隱藏onCreat()中的optionMenu,但它不起作用。

回答

1

您不能從onCreate方法隱藏菜單,因爲它尚未充氣。

嘗試使用這樣的:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 

    menu.clear(); 

    // do what you want 

    return super.onPrepareOptionsMenu(menu); 
} 

否則,把你的邏輯onCreateOptionsMenu方法,並呼籲invalidateOptionsMenu()當你需要刷新的東西。

+0

感謝我在onCreateOptionsMenu –

0

我在onCreateOptionsMenu中完成了該操作,之後外觀邏輯完美地工作。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.result, menu); 
    if (menu != null){ 
     menu.setGroupVisible(R.id.resultGroup, false); 
    } 
    return true; 

}