使用遥控器进行Android TV应用程序



我正在开发电视的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);
    }

相关内容

  • 没有找到相关文章

最新更新