Flutter - 主动检查是否按下了特殊键(如 ctrl)
Flutter - actively check if special key (like ctrl) is pressed
问题:如何主动检查是否按下了某个(装饰)键,例如CTRL或SHIFT ,喜欢:
if (SomeKeyboardRelatedService.isControlPressed()) {...}
背景
我想检查当用户点击鼠标时是否按下了某个(装饰)键。我们无法主动做到这一点。
相反,我们使用 RawKeyboardListener
并记住 onKey
事件中的 isControlPressed
。这样,稍后在 GestureDetector.onTap
中我们可以检查 isControlPressed
是否为 true
。问题是:
- 我们自己维护按键按下状态似乎不合理,因为它违反了单一真实来源原则并且可能导致不一致。
- 如果用户在按住特殊键的同时离开应用程序,这实际上会导致不一致。
我们看了相关的文档,用了几个关键词搜索,都没有结果。
RawKeyboard 可能就是您要找的
示例:
RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.controlLeft)
问题:如何主动检查是否按下了某个(装饰)键,例如CTRL或SHIFT ,喜欢:
if (SomeKeyboardRelatedService.isControlPressed()) {...}
背景
我想检查当用户点击鼠标时是否按下了某个(装饰)键。我们无法主动做到这一点。
相反,我们使用 RawKeyboardListener
并记住 onKey
事件中的 isControlPressed
。这样,稍后在 GestureDetector.onTap
中我们可以检查 isControlPressed
是否为 true
。问题是:
- 我们自己维护按键按下状态似乎不合理,因为它违反了单一真实来源原则并且可能导致不一致。
- 如果用户在按住特殊键的同时离开应用程序,这实际上会导致不一致。
我们看了相关的文档,用了几个关键词搜索,都没有结果。
RawKeyboard 可能就是您要找的
示例:
RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.controlLeft)