gpt4 book ai didi

android - 升级到api v26.1.0后Hard Menu Button不触发AppCompatActivity的onKeyDown

转载 作者:行者123 更新时间:2023-11-30 00:06:45 24 4
gpt4 key购买 nike

在我将 targetSdk 从 v25.3.1 升级到 Android Studio 上的 v26.1.0 之后。我不再调用 onKeyDown()。我在未触发的 onKeyDown() 方法中有日志。除了菜单按钮之外,所有其他按钮(如音量和后退)的日志都会被打印出来,并且它们的相应功能也会被执行。按下菜单按钮后背光灯亮起,我确认菜单按钮本身没问题。我在不同的设备上试过。我发现在v22中曾经发现过这样的bug,后来被google修复了。我找到了 Mattia Maestrini 提出的解决方案,但它对我不起作用。我想问题可能是一样的。任何建议或帮助。谢谢。

更新:似乎暂时没有人知道答案。但如果这是一个更新错误,我想其他人也应该有这个问题。直到那时我将我的代码从 onKeyDown() 转移到 dispatchKeyEvent() ,这同样有效。

最佳答案

我自己刚遇到这个问题,我想我找到了它发生的原因。 super.dispatchKeyEvent() 方法中的菜单键有一个特殊情况。如果你check the source Activity.java,你会看到它在这种情况下消耗了按键:

if (keyCode == KeyEvent.KEYCODE_MENU &&
mActionBar != null && mActionBar.onMenuKeyEvent(event)) {
return true;
}

基本上,如果你按下菜单键,有一个actionBar,并且actionBar的onMenuKeyEvent()消耗事件,dispatchKeyEvent()也会消耗事件。当事件被消费时,它不会将事件传递给 onKeyDown()

我的问题的解决方案是删除我的操作栏并将其替换为工具栏(无论如何我的操作栏并没有做太多事情)。在我这样做之后,我能够在我的应用程序中接收到 onKeyDown()。

关于android - 升级到api v26.1.0后Hard Menu Button不触发AppCompatActivity的onKeyDown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48839125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com