The HardwareKeyboardDetector component allows you to directly listen
to events from a hardware keyboard, bypassing the
Focus widget in Flutter.
It will not listen for events from any on-screen (software) keyboards.
This component can be placed anywhere in the component tree. For example,
it can be attached to the root level of the Game class, or to the player
being controlled. Multiple
HardwareKeyboardDetector components can coexist
within the same game, and they all will receive the key events.
The component provides the
onKeyEvent event handler, which can either be
overridden or passed as a parameter in the constructor. This event handler
fires whenever the user presses or releases any key on a keyboard, and also
when a key is being held.
The stream of key events will be normalized by Flutter, meaning that for every KeyDownEvent there will always be the corresponding KeyUpEvent, possibly with some KeyRepeatEvents in the middle. Depending on the platform, some of these events may be “synthesized”, i.e. created by the framework artificially in order to preserve the correct event sequence. See Flutter’s HardwareKeyboard for more details.
Similar normalization guarantee exists when this component is added to or
removed from the component tree. If the user was holding any keys when the
HardwareKeyboardDetector was mounted, then artificial
will be fired; if the user was holding keys when this component was removed,
KeyUpEvents will be synthesized.
The list of keys that are currently being pressed on the keyboard (or a keyboard-like device). The keys are listed in the order in which they were pressed, except for the modifier keys which may be listed out-of-order on some systems.
The set of logical keys that are currently being pressed on the keyboard.
This set corresponds to the
physicalKeysPressed list, and can be used
to search for keys in a keyboard-layout-independent way.
True if the Ctrl key is currently being pressed.
True if the Shift key is currently being pressed.
True if the Alt key is currently being pressed.
True if Num Lock currently turned on.
True if Caps Lock currently turned on.
True if Scroll Lock currently turned on.
true, delivery of key events will be suspended.
When this property is set to true, the system generates KeyUp events for
all keys currently being held, as if the user has released them.
Conversely, when this property is switched back to
false, and the user
was holding some keys at the time, the system will generate KeyDown
events as if the user just started pressing those buttons.