我当我尝试通过调用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