【发布时间】:2014-10-26 20:09:28
【问题描述】:
当我尝试通过调用 MenuCompat.setActionView(menuitem, null) 从我的操作栏中删除操作视图时,我最终得到一个不可见且不可点击的菜单项。菜单项只是消失了,它只在我调用 setActionView 传递布局时显示。如果我调用 invalidateOptionsMenu(),它会显示出来,但会产生一些奇怪的结果,比如在需要时不显示进度条。
这是删除和添加 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);
}
}
}
}
【问题讨论】:
-
您是否有特殊原因想要在单个菜单项上设置/取消设置操作视图,而不是执行诸如拥有两个项目并将可见性设置为一个或另一个?
-
菜单项也用作刷新按钮。当它点击它应该显示加载进度条。不知道你说的我是否还能做到这一点。 ?
标签: android android-layout android-activity android-actionbar