Shortcuts class Null safety
A widget that creates key bindings to specific actions for its descendants.
This widget establishes a ShortcutManager to be used by its descendants when invoking an Action via a keyboard key combination that maps to an Intent.
See the article on Using Actions and Shortcuts for a detailed explanation.
Here, we will use the Shortcuts and Actions widgets to add and subtract
from a counter. When the child widget has keyboard focus, and a user presses
the keys that have been defined in Shortcuts, the action that is bound
to the appropriate Intent for the key is invoked.
It also shows the use of a CallbackAction to avoid creating a new Action subclass.
To create a local project with this code sample, run:
flutter create --sample=widgets.Shortcuts.1 mysample
flutter create --sample=widgets.Shortcuts.1 mysample
This slightly more complicated, but more flexible, example creates a custom
Action subclass to increment and decrement within a widget (a Column)
that has keyboard focus. When the user presses the up and down arrow keys,
the counter will increment and decrement a data model using the custom
actions.
One thing that this demonstrates is passing arguments to the Intent to be
carried to the Action. This shows how actions can get data either from
their own construction (like the model
in this example), or from the
intent passed to them when invoked (like the increment amount
in this
example).
To create a local project with this code sample, run:
flutter create --sample=widgets.Shortcuts.2 mysample
flutter create --sample=widgets.Shortcuts.2 mysample
See also:
- CallbackShortcuts, a less complicated (but less flexible) way of defining key bindings that just invoke callbacks.
- Intent, a class for containing a description of a user action to be invoked.
- Action, a class for defining an invocation of a user action.
- CallbackAction, a class for creating an action from a callback.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- Shortcuts
Constructors
-
Shortcuts({Key? key, required Map<
ShortcutActivator, Intent> shortcuts, required Widget child, String? debugLabel}) -
Creates a const Shortcuts widget that owns the map of shortcuts and
creates its own manager.
const
- Shortcuts.manager({Key? key, required ShortcutManager manager, required Widget child, String? debugLabel})
-
Creates a const Shortcuts widget that uses the manager to
manage the map of shortcuts.
const
Properties
- child → Widget
-
The child widget for this Shortcuts widget.
final
- debugLabel → String?
-
The debug label that is printed for this node when logged.
final
- hashCode → int
- The hash code for this object.
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- manager → ShortcutManager?
-
The ShortcutManager that will manage the mapping between key
combinations and Actions.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
-
shortcuts
→ Map<
ShortcutActivator, Intent> -
The map of shortcuts that describes the mapping between a key sequence
defined by a
ShortcutActivator
and theIntent
that will be emitted when that key sequence is pressed.read-only
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< Shortcuts> -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of
DiagnosticsNode
objects describing this node's children.protected">@protectedinherited -
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
nonVirtual">@nonVirtualinherited