java - 当 TalkBack 开启时,我不再从导航按钮(上、下、左、右)获得 KeyEvents
问题描述
我正在使用 React Native 和辅助功能(TalkBack)。我面临的问题 - 当 TalkBack 打开时,我的 KeyEvent 侦听器没有在遥控器上注册我的导航按钮。感觉就像 TalkBack 劫持了他们自己的导航。我将在 JAVA 中附加我的 KeyEvent 侦听器。当 TalkBack 开启时,我需要我的 KeyEvents 工作。
/ @Override // <--- Add this method if you want to react to keyDown
public boolean onKeyDown(int keyCode, KeyEvent event) {
// A. Prevent multiple events on long button press
// In the default behavior multiple events are fired if a button
// is pressed for a while. You can prevent this behavior if you
// forward only the first event:
int keyCode1 = event.getKeyCode();
Log.d("keyDownTest:", Integer.toString(keyCode1));
if (event.getRepeatCount() == 0) {
KeyEventModule.getInstance().onKeyDownEvent(keyCode, event);
}
//
// B. If multiple Events shall be fired when the button is pressed
// for a while use this code:
// KeyEventModule.getInstance().onKeyDownEvent(keyCode, event);
//
// Using B.
// KeyEventModule.getInstance().onKeyDownEvent(keyCode, event);
// There are 2 ways this can be done:
// 1. Override the default keyboard event behavior
// super.onKeyDown(keyCode, event);
// return true;
// 2. Keep default keyboard event behavior
// return super.onKeyDown(keyCode, event);
// Using method #1 without blocking multiple
super.onKeyDown(keyCode, event);
return true;
}
解决方案
推荐阅读
- python-3.x - 如何从每行都是唯一购买的数据库中为客户购买创建时间框架窗口?
- elasticsearch - Elasticsearch 7.7 如何读取多个文档,而不是获取所有文档
- django - Django:用户登录后如何在所有页面上发送用户名
- javascript - vue-smooth-scroll 重定向 vuejs 链接
- r - 闪亮的 FilesButton 开始目录
- python - 使用 for 循环在同一散点图上的 Python 绘图点
- javascript - 对可能包含 JavaScript 中未定义的数组进行排序
- php - codeIgniter 4中的force_download方法的等价物是什么
- flutter - Dart,在列表项上同时比较两种情况
- python - 画布上的 tkinter 菜单栏