1
我已經實現了帶有ActionBar
的導航抽屜,其中只有一個項目可以打開導航抽屜。因此,主頁和菜單項按鈕打開抽屜。所有的工作都很好,沒有崩潰。如何防止在導航抽屜打開時隱藏ActionBar項目?
但是,當我點擊ActionBar
主頁按鈕或菜單項時,導航抽屜會打開,並且菜單項變得不可見。
我該如何預防?無論抽屜是打開還是關閉,我都希望它始終可見。
我已經嘗試了多種解決方案。例如,在抽屜類中,在onCreate
中調用方法setHasOptionsMenu(true);
。然後我設置菜單項目always
。
然後在主Activity
,我試圖在創作中捕捉菜單項
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
try {
MenuItem item = menu.getItem(0);
if (item != null) {
item.setVisible(true);
}
} catch (Exception e) {
Log.e(TAG, "Error: " + e.getLocalizedMessage());
}
return super.onPrepareOptionsMenu(menu);
}
但是當抽屜出現,0項menu
對象的回報。
我沒有想法。
編輯
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen())
getMenuInflater().inflate(R.menu.main, menu);
restoreActionBar();
return true;
}
return super.onCreateOptionsMenu(menu);
}
public void restoreActionBar() {
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (item != null && id == android.R.id.home) {
if (mNavigationDrawerFragment.isDrawerOpen(Gravity.RIGHT)) {
mNavigationDrawerFragment.closeDrawer(Gravity.RIGHT);
} else {
mNavigationDrawerFragment.openDrawer(Gravity.RIGHT);
}
return true;
}
return super.onOptionsItemSelected(item);
}
這是右側抽屜式導航欄。
那麼你的'onCreateOptionsMenu'樣子 – tyczj 2014-09-26 16:44:14
現在@tyczj檢查它。我編輯了這個問題。 – sandalone 2014-09-26 16:47:34
好吧,你走了,你抽屜打開時做一些特別的事情。或不開放我可以說 – tyczj 2014-09-26 16:48:16