我有一个自定义的线性布局类,可以在其中动态添加子级。
并通过覆盖dispatchKeyEvent
方法处理通过电视遥控器(D-Pad键)进行的导航。
当我们启用对讲服务dispatchKeyEvent
时,不会得到呼叫,并且子级导航也不如预期。
我尝试覆盖dispatchPopulateAccessibilityEvent
,但仅获得TYPE_VIEW_FOCUSED
,而不是d-pad键。
根据d-pad键将焦点移至下一个可聚焦的孩子。
public boolean dispatchKeyEvent(KeyEvent event) {
boolean keyeventHandled = super.dispatchKeyEvent(event);
int action = event.getAction();
int keycode = event.getKeyCode();
if (action == KeyEvent.ACTION_DOWN) {
switch (keycode) {
case KeyEvent.KEYCODE_DPAD_RIGHT:
//Code to move focus to next children
case KeyEvent.KEYCODE_DPAD_LEFT:
//Code to move focus to previous children
}
}
return keyeventHandled;
}
是否可以在talkback
打开的情况下捕获d-pad按键事件?