【问题标题】:Flutter Android TV app unable to select using D PadFlutter Android TV 应用程序无法使用 D Pad 进行选择
【发布时间】:2020-12-04 01:38:37
【问题描述】:

我正在使用 Flutter 开发一个 Android TV 应用。我能够运行该应用程序(现在是示例应用程序)。但我无法使用 d pad 选择按钮选择任何内容。

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

快捷方式(

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

但它在代码中给了我一个错误。我做错了什么?

感谢任何帮助。谢谢。

【问题讨论】:

  • 在 Java 代码中,按钮不是名为 select 而是 center。你在 Flutter 中有一个中心键常量吗?

标签: android flutter flutter-layout android-tv d-pad


【解决方案1】:

添加此代码肯定有助于 Android TV OK/Select 按钮,并且可以扩展为其他映射。为 Flutter 1.24-dev 构建并完美运行

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return Shortcuts(
      shortcuts: <LogicalKeySet, Intent>{
        LogicalKeySet(LogicalKeyboardKey.select): const ActivateIntent(),
      },
      child: MaterialApp( 

【讨论】:

  • 颤振 2.5 不工作。
【解决方案2】:

你可以用 RawKeyboardListener 代替 Shortcuts,我使用了下面的代码:

 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 键执行此类操作。

【讨论】:

  • 这应该是正确的方式!
猜你喜欢
  • 2020-07-18
  • 1970-01-01
  • 2016-08-10
  • 2020-06-28
  • 2021-12-16
  • 2016-08-17
  • 2022-08-03
  • 2020-03-16
  • 1970-01-01
相关资源
最近更新 更多