Ala*_*kba 5 button dart flutter
我有你在图片中看到的 Android 设备。该设备背面有一个橙色按钮。我想在按下此按钮时触发某个功能。我只是尝试在 Flutter 中使用 HardwareKeyboard,如下所示并获得解决方案,但我没有得到响应。在此输入图像描述
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
@override
void initState() {
HardwareKeyboard.instance.addHandler(key_handler);
super.initState();
}
bool key_handler(event) {
print(event.physicalKey.debugName);
// In this part, when a button is clicked, it should return certain responses to me.
if (event is KeyDownEvent) {
if (event.physicalKey.usbHidUsage == PhysicalKeyboardKey.audioVolumeDown.usbHidUsage) {
_incrementCounter();
} else if (event.physicalKey.usbHidUsage ==
PhysicalKeyboardKey.audioVolumeUp.usbHidUsage) {
_decrementCounter();
}
}
return true;
}
void _incrementCounter() {
setState(() {
_counter++;
});
}
void _decrementCounter() {
setState(() {
_counter--;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'Hit a Volume UP/Down key:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
TextField(
decoration: InputDecoration(
hintText: "Once touch here and show a software key."),
),
],
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
当按下音量调高和调低按钮时,上面的代码会将计数增加或减少 1 个单位。有用。
我需要的按钮是背面的 f4。但是当我点击这个按钮时我没有得到任何回应。
我觉得Flutter有这个问题是因为这部分的代码不完整。因为除了音量加减按钮、后退按钮之外,其他按钮都没有任何反应。
我找不到可以解决此问题的插件。曾经有一个名为 hardware_buttons 的插件。当前不可用。因为是3年前写的,到现在还没有更新。我认为自从 Flutter 添加了 HardwareKeyboard 以来,它就不再需要了。
请把你所知道的和猜想的都写在评论区吧。