在我的 Flutter 应用程序中,我尝试添加自定义键盘快捷键,就像我使用文件选择器来附加图像一样。现在,我想使用像“Ctrl + I”这样的键盘快捷键来执行此操作,它返回该文件选择器小部件,然后在后台运行该小部件,要求添加图像。
我尝试使用各种内置小部件,例如 Focus、Keyboard Listener、HardwareKeyboard 和 FocusableActionDetector 类,但没有任何效果按照我想要的方式工作。 由于我是初学者,我想知道我是否错过了一些东西。
查看 CallbackShortcuts 类 (https://api.flutter.dev/flutter/widgets/CallbackShortcuts-class.html)。将其包裹在您的小部件树周围,使用 Focus a 并传递您想要实现的命令。例如对于 Ctrl + I 它将是:
CallbackShortcuts(
bindings: <ShortcutActivator, VoidCallback>{
const SingleActivator(LogicalKeyboardKey.keyI, control: true): () {
// callback
},
}
child: Focus(
autofocus: true,
child: ...
),
);
这是一个比快捷方式更简单的小部件(https://api.flutter.dev/flutter/widgets/Shortcuts-class.html),但它可以完成工作,所以如果您是初学者,回调快捷方式是一个不错的选择
希望有帮助