我正在使用 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 手机的问题。
当用户将手指移出按钮时,如何让菜单保持打开状态?