我正在使用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设备中测试过。
答案 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);
}