Flutter - 主动检查是否按下了特殊键(如 ctrl)

Flutter - actively check if special key (like ctrl) is pressed

问题:如何主动检查是否按下了某个(装饰)键,例如CTRLSHIFT ,喜欢:

if (SomeKeyboardRelatedService.isControlPressed()) {...}

背景

我想检查当用户点击鼠标时是否按下了某个(装饰)键。我们无法主动做到这一点。 相反,我们使用 RawKeyboardListener 并记住 onKey 事件中的 isControlPressed。这样,稍后在 GestureDetector.onTap 中我们可以检查 isControlPressed 是否为 true。问题是:

  1. 我们自己维护按键按下状态似乎不合理,因为它违反了单一真实来源原则并且可能导致不一致。
  2. 如果用户在按住特殊键的同时离开应用程序,这实际上会导致不一致。

我们看了相关的文档,用了几个关键词搜索,都没有结果。

RawKeyboard 可能就是您要找的

示例:

RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.controlLeft)