我當我嘗試通過調用MenuCompat.setActionView(menuitem,null)從我的操作欄中刪除操作視圖時,我最終得到了一個不可見和不可點擊的菜單項。該菜單項只是消失,它只顯示當我調用setActionView傳遞佈局。如果我調用invalidateOptionsMenu(),它會顯示出來,但會產生一些奇怪的結果,比如當我需要時不顯示進度條。Android爲什麼setActionView隱藏菜單項
這裏是刪除和添加actionView的函數。它刷新動作:
public void refresh(boolean refreshing, boolean fragment) {
if(refreshing == refreshed) {
return;
}
refreshed = refreshing;
final MenuItem refreshItem = optionsMenu.findItem(R.id.menu_refresh);
if (optionsMenu != null) {
if (refreshItem != null) {
if (refreshing) {
MenuItemCompat.setActionView(refreshItem, R.layout.actionbar_indeterminate_progress);
MenuItemCompat.expandActionView(refreshItem);
if(fragment)
((PhotoGridPagerFragment) fm.findFragmentByTag(TAG_FOR_PHOTO_GRID_PAGER_FRAGMENT)).refresh();
} else {
MenuItemCompat.setActionView(refreshItem, null);
}
}
}
}
是否有一個特定的原因,你想在單個菜單項上設置/取消設置動作視圖,而不是做兩件物品並設置其中一個或另一個的可見性? – ianhanniballake 2014-10-26 20:19:49
菜單項也用作刷新按鈕。點擊它時應顯示加載進度條。不知道我是否仍然可以用你所說的來實現這一點。 ? – 2014-10-26 20:54:34