SingleActivator constructor Null safety
Triggered when the trigger key is pressed while the modifiers are held.
The trigger should be the non-modifier key that is pressed after all the
modifiers, such as LogicalKeyboardKey.keyC as in Ctrl+C
. It must not be
a modifier key (sided or unsided).
The control, shift, alt, and meta flags represent whether the respect modifier keys should be held (true) or released (false). They default to false.
By default, the activator is checked on all RawKeyDownEvent events for
the trigger key. If includeRepeats
is false, only the trigger key
events with a false RawKeyDownEvent.repeat attribute will be considered.
In the following example, the shortcut
Control + C
increases the counter:
To create a local project with this code sample, run:
flutter create --sample=widgets.SingleActivator.SingleActivator.1 mysample
flutter create --sample=widgets.SingleActivator.SingleActivator.1 mysample
Implementation
const SingleActivator(
this.trigger, {
this.control = false,
this.shift = false,
this.alt = false,
this.meta = false,
this.includeRepeats = true,
}) : // The enumerated check with `identical` is cumbersome but the only way
// since const constructors can not call functions such as `==` or
// `Set.contains`. Checking with `identical` might not work when the
// key object is created from ID, but it covers common cases.
assert(
!identical(trigger, LogicalKeyboardKey.control) &&
!identical(trigger, LogicalKeyboardKey.controlLeft) &&
!identical(trigger, LogicalKeyboardKey.controlRight) &&
!identical(trigger, LogicalKeyboardKey.shift) &&
!identical(trigger, LogicalKeyboardKey.shiftLeft) &&
!identical(trigger, LogicalKeyboardKey.shiftRight) &&
!identical(trigger, LogicalKeyboardKey.alt) &&
!identical(trigger, LogicalKeyboardKey.altLeft) &&
!identical(trigger, LogicalKeyboardKey.altRight) &&
!identical(trigger, LogicalKeyboardKey.meta) &&
!identical(trigger, LogicalKeyboardKey.metaLeft) &&
!identical(trigger, LogicalKeyboardKey.metaRight),
);