Flutter Android TV应用程序无法使用D Pad进行选择

问题描述

我正在使用Flutter开发一个Android TV应用。我能够运行该应用程序(目前为示例应用程序)。但是我无法使用d键盘选择按钮选择任何东西。

我发现我必须使用类似这样的东西才能实现这一目标

快捷方式(

    shortcuts: {
      LogicalKeySet(LogicalKeyboardKey.select):
          const Intent(ActivateAction.key)
    },child: MaterialApp())

但是它给了我代码错误。我在做什么错了?

感谢您的帮助。谢谢。

解决方法

添加此代码对于Android TV确定/选择按钮肯定有帮助,并且可以扩展为其他映射。为Flutter 1.24-dev构建并完美工作

LiveData
,

您可以使用 RawKeyboardListener 代替快捷方式,我使用了以下代码:

 body: RawKeyboardListener(
        autofocus: true,focusNode: _focusNode,onKey: _onKey,child:Center())
 

    void _onKey(RawKeyEvent e) {
    controls();

    if (e.runtimeType.toString() == 'RawKeyDownEvent') {
      switch (e.logicalKey.debugName) {
        case 'Media Play Pause':
        case 'Select':
          setState(() {
            if (_videoViewController.value.isPlaying) {
              _videoViewController.pause();
            } else {
              _videoViewController.play();
            }
          });
          break;
      }
    }`

现在,如果您想快进或快退,只需将 RawKeyboardListener 与 具体情况来处理。

您也可以使用 D-PAD 键执行此类操作。