在上下文操作栏中禁用按钮

时间:2014-07-15 14:57:01

标签: android

我有一个使用上下文操作栏的UI屏幕。

我想知道在上下文栏中禁用某个操作是否可接受,以及是否可能。 我知道通常你会根据屏幕状态隐藏一个项目,你不想让用户当前正在服用。

但只是想检查一下这是否是一种禁用动作的正确方法,否则根据当前状态,图标会在条形图中乱窜太多。

1 个答案:

答案 0 :(得分:0)

我不记得CAB中禁用操作项的示例,但我已经看到(并且已经实现)基于其他条件在CAB中隐藏/显示操作项,例如,选择/取消选择ListView / GridView中的行。

例如,KitKat中的原生Gallery应用程序将在选中至少一个图像时显示“共享”和“删除”操作,并在未检查图像时隐藏它们。

至于如何做到这一点,取决于你的情况。如果要根据是否在ListView或GridView中选择项目来显示/隐藏操作,可以实现AbsListView.MultiChoiceModeListener,并覆盖onItemCheckedStateChanged()。例如,如果要根据是否在GridView中选择任何项目来隐藏/显示删除操作...

@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
    int selectCount = mGridView.getCheckedItemCount();        
    mode.getMenu().findItem(R.id.action_delete).setVisible(selectCount > 0);
}