我正在开发电视的Android应用程序当我试图在真实的Android电视中测试它我无法使用遥控按钮导航到任何按钮或任何东西向上,向下,左,右。
我已经搜索过它,发现我必须使用(启用d-pad导航),但我不知道该如何使用,我找不到任何代码或教程我的应用程序非常简单。它使彼此旁边的动态布局,每个布局只有一个按钮和一个回收视图。
默认情况下,Android实现了从布局分布推断的基本D-PAD导航。如果您主要使用列表或线性布局,它可以很好地工作。
关键区别在于,视图是在聚焦状态而不是选定的,因此,如果您使用自定义背景,即对于按钮,它可能似乎在实际上是不起作用的。
。您可以使用键盘上的光标键在模拟器上尝试一下。
或者,如果推断导航不起作用,则可以定义NextFocusup,向下,左右每个视图。
在官方文档中都很好地解释了:https://developer.android.com/training/tv/start/navigation.html
尝试这个,
@Override
public boolean onKeyDown(int keyCode, KeyEvent events) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
break;
case KeyEvent.KEYCODE_DPAD_UP:
break;
case KeyEvent.FLAG_KEEP_TOUCH_MODE:
break;
}
return super.onKeyDown(keyCode, events);
}
如果在上面呼叫的情况下不呼叫,请尝试以下操作:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_DPAD_CENTER:
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
break;
case KeyEvent.KEYCODE_DPAD_UP:
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
break;
case KeyEvent.FLAG_KEEP_TOUCH_MODE:
break;
}
return super.dispatchKeyEvent(event);
}