Flutter Android TV 应用程序无法使用 D Pad 进行选择
Posted
技术标签:
【中文标题】Flutter Android TV 应用程序无法使用 D Pad 进行选择【英文标题】:Flutter Android TV app unable to select using 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 中有一个中心键常量吗? 【参考方案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 键执行此类操作。
【讨论】:
这应该是正确的方式!以上是关于Flutter Android TV 应用程序无法使用 D Pad 进行选择的主要内容,如果未能解决你的问题,请参考以下文章
Flutter TV 应用的开发尝试 | 开发者说·DTalk
Flutter Android TV 应用程序被拒绝,因为“启动后崩溃”,但它在模拟器和 android 电视上正常工作。你有啥建议吗?