0
我有一個包含三個項目的菜單,每個菜單都單獨顯示一個屏幕。我在第二個屏幕中調用invalidateOptionMenu()以刷新操作欄顏色。 顏色變化在4.1.2和4.3版本中都能很好地工作。在Android 4.3中調用invalidateOptionsMenu()時出現奇怪的行爲
但是在Android 4.3上,當我調用它時,第一個屏幕的項目顯示在第二個屏幕上。
這裏是我的代碼,這是在(@覆蓋公共無效的onClick(視圖v):
if (android.os.Build.VERSION.SDK_INT >= 11){
final ActionBar actionBar = getActionBar();
this.invalidateOptionsMenu();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(couleur)));
}
即使我嘗試後,這是行不通的:
final MenuItem saveNote = Menu.findItem(R.id.saveNote);
final MenuItem removeNote = Menu.findItem(R.id.deleteNote);
final MenuItem nouvelleNote = Menu.findItem(R.id.nouvelleNote);
nouvelleNote.setVisible(false); //screen 1
saveNote.setVisible(true); //screen 2
removeNote.setVisible(false); //screen 3
而且這裏是我如何重寫onCreateOptionsMenu:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
Menu = menu;
getMenuInflater().inflate(R.menu.pumpkin_note, menu);
final MenuItem saveNote = Menu.findItem(R.id.saveNote);
final MenuItem removeNote = Menu.findItem(R.id.deleteNote);
final MenuItem nouvelleNote = Menu.findItem(R.id.nouvelleNote);
nouvelleNote.setVisible(true);
saveNote.setVisible(false);
removeNote.setVisible(false);
return true;
}