我正在使用actionbarsherlock,在那里我收听键盘事件,如果是硬件菜单按钮,我强制菜单显示如下
public boolean onKeyDown(int keyCode, KeyEvent event) {
try {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode) {
case KeyEvent.KEYCODE_MENU:
if (mMenu != null && mMenu.findItem(R.id.training_action_menu_group1) != null) {
mMenu.performIdentifierAction(R.id.training_action_menu_group1, Menu.FLAG_PERFORM_NO_CLOSE);
}
return true;
}
}
return false;
} catch (Exception e) {
ErrorUtil.handleSilentException(e);
Log.e(TAG, "Error onKeyDown", e);
}
return false;
}
问题是当用户将手指放在硬件菜单按钮上时显示菜单,当他将手指移开时 - 菜单关闭。这适用于SGS 3和其他设备。
标志Menu.FLAG_PERFORM_NO_CLOSE
似乎与此问题无关,但它以某种方式解决了其他Android 2.3手机的问题。
当用户将手指从按钮中移开时,如何让菜单保持打开状态?