Flutter中监听物理按键是否按下, RawKeyboardListener在android8可以,但在android9不生效,没有触发onKey事件,有没有小伙伴知道是什么原因?
FocusNode _focusNode = FocusNode();
void _handleKeydown(RawKeyEvent event) {
print("come to key event");
if (event is RawKeyDownEvent && event.data is RawKeyEventDataAndroid) {
RawKeyDownEvent rawKeyDownEvent = event;
RawKeyEventDataAndroid rawKeyEventDataAndroid = rawKeyDownEvent.data;
print(rawKeyEventDataAndroid.keyCode);
if (rawKeyEventDataAndroid.keyCode == 139 || rawKeyEventDataAndroid.keyCode == 280) {
doSomething();
}
}
}
@override
Widget build(BuildContext context) {
FocusScope.of(context).requestFocus(_focusNode);
return OKToast(
child: new RawKeyboardListener(
focusNode: _focusNode,
onKey: _handleKeydown,
child: ...,
),
);
}