Flutter RawKeyboardListener在android9不触发onKey事件

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: ...,
        ),
    );
  }
阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题