问题描述
我正在使用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 键执行此类操作。