上下文操作栏搞乱工具栏操作

时间:2015-07-22 11:32:39

标签: android android-appcompat android-toolbar contextual-action-bar

我正在使用appcompat v7和支持设计库。在我的活动中有一个常规工具栏,它有三个操作按钮(RM1,RM2,RM3):

_____________________________________
                         RM1 RM2 RM3 |
_____________________________________|  

当在列表中长按某些项目时,会显示上下文操作栏(CAB)而不是常规工具栏。我的CAB只有一个动作(CM)。

_____________________________________
                                  CM |
_____________________________________|  

激活上下文操作栏(CAB)后,它会隐藏常规工具栏。此时,如果我点击上下文菜单(CM),一切正常。但由于某种原因,如果我点击CM左侧的空白区域,则会显示常规菜单RM1和RM2,尽管CAB会隐藏常规工具栏。当CAB处于活动状态时,显然不显示RM1和RM2图标,但是单击处理程序仍然存在,即使隐藏常规工具栏也会触发它们。除非在点击的点中有操作,否则CAB不会拦截点击。如果我点击CM,它将被正确处理:RM未显示,因为该按钮正好位于CM菜单下方。

这是一个错误吗?任何解决方法?

在Android 4.1设备中测试过。

1 个答案:

答案 0 :(得分:1)

我认为这是一个错误。我自己也遇到过,isolated it。假设您正在扩展AppCompatActivity

,这是一种解决方法
@Override
public void onSupportActionModeStarted(ActionMode mode) {
    super.onSupportActionModeStarted(mode);
    rm1.setEnabled(false);
    rm2.setEnabled(false);
    rm3.setEnabled(false);
}

@Override
public void onSupportActionModeFinished(ActionMode mode) {
    super.onSupportActionModeFinished(mode);
    rm1.setEnabled(true);
    rm2.setEnabled(true);
    rm3.setEnabled(true);
}