My AppCompatActivity axml 使用 Android.Support.v7.Widget.Toolbar,Activity 使用SetSupportActionBar(toolbar);
设置工具栏。一切都按预期工作,但是我想覆盖整个活动的 OnKeyDown 事件以防止硬件按钮单击。似乎支持操作栏(只是一个操作栏(使用硬件菜单按钮的事件,因此活动的 OnKeyDown 永远不会捕获菜单按钮单击。
我尝试覆盖工具栏视图及其 OnKeyDown 事件,但 SupportActionBar 也会使用此事件。
我的解决方法是添加一个看起来像溢出菜单图标的菜单项,并在OnOptionsItemSelected中打开一个弹出窗口。但是,这并不理想。
您可以在 Activity 中覆盖 onKeyDown/onKeyUp 处理程序。
@Override
public boolean onKeyDown(int keyCode, final KeyEvent event) {
if( keyCode == KeyEvent.KEYCODE_MENU ) {
return true; // Ignore the keypress
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, final KeyEvent event) {
if( keyCode == KeyEvent.KEYCODE_MENU )
return true; // Ignore the keypress
}
return super.onKeyUp(keyCode, event);
}