【问题标题】:Flutter Web RawKeyboardListener 'escape' not working in FullscreenFlutter Web RawKeyboardListener'escape'在全屏模式下不起作用
【发布时间】:2022-01-17 09:45:03
【问题描述】:

我想使用 Flutter web 中的 'escape' 键来更改小部件。我遇到的问题是,在全屏时,我的 RawKeyboardListener 没有检测到按下的转义键,这与不在全屏时不同。我想知道如何纠正这个问题:

这是我的全屏功能:

  void goFullScreen() {
    document.documentElement!.requestFullscreen();
    
  }

这是我的 RawKeyboardListener:

RawKeyboardListener(
      autofocus: true,
      focusNode: FocusNode(),
      onKey: (event){
        if (event.isKeyPressed(LogicalKeyboardKey.exit)) {
          print('escape pressed');
        }
      },

【问题讨论】:

    标签: flutter flutter-web


    【解决方案1】:

    对此也有类似的问题,有助于收听文档 onFullscreenchange 事件:

     document.documentElement?.onFullscreenChange.listen((event) {
          
          if (document.fullscreenElement==null) {
            print("do something");
          }
        });
    

    它在 mozilla 网站上的 fullscreenElement 文档中。当存在全屏时,fullscreenElement 变量设置为 null。

    【讨论】:

    • 这对我有用,谢谢。我不得不把它放在 build 方法中,因为当我把它放在类中时出现错误。有没有办法不把它放在构建方法中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2021-04-28
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    相关资源
    最近更新 更多