OrderedTraversalPolicy class Null safety
A FocusTraversalPolicy that orders nodes by an explicit order that resides in the nearest FocusTraversalOrder widget ancestor.
Only orders of the same type are comparable. If a set of widgets in the same FocusTraversalGroup contains orders that are not comparable with each other, it will assert, since the ordering between such keys is undefined. To avoid collisions, use a FocusTraversalGroup to group similarly ordered widgets together.
When overriding, FocusOrder.doCompare must be overridden instead of FocusOrder.compareTo, which calls FocusOrder.doCompare to do the actual comparison.
This sample shows how to assign a traversal order to a widget. In the
example, the focus order goes from bottom right (the "One" button) to top
left (the "Six" button).
To create a local project with this code sample, run:
flutter create --sample=widgets.OrderedTraversalPolicy.1 mysample
flutter create --sample=widgets.OrderedTraversalPolicy.1 mysample
See also:
- FocusTraversalGroup, a widget that groups together and imposes a traversal policy on the Focus nodes below it in the widget hierarchy.
- WidgetOrderTraversalPolicy, a policy that relies on the widget creation order to describe the order of traversal.
- ReadingOrderTraversalPolicy, a policy that describes the order as the natural "reading order" for the current Directionality.
- NumericFocusOrder, a focus order that assigns a numeric traversal order to a FocusTraversalOrder widget.
- LexicalFocusOrder, a focus order that assigns a string-based lexical traversal order to a FocusTraversalOrder widget.
- FocusOrder, an abstract base class for all types of focus traversal orderings.
- Inheritance
-
- Object
- FocusTraversalPolicy
- OrderedTraversalPolicy
- Mixed in types
Constructors
- OrderedTraversalPolicy({FocusTraversalPolicy? secondary})
- Constructs a traversal policy that orders widgets for keyboard traversal based on an explicit order.
Properties
- hashCode → int
-
The hash code for this object.
read-onlyinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
- secondary → FocusTraversalPolicy?
-
This is the policy that is used when a node doesn't have an order
assigned, or when multiple nodes have orders which are identical.
final
Methods
-
changedScope(
{FocusNode? node, FocusScopeNode? oldScope}) → void -
This is called whenever the given
node
is re-parented into a new scope, so that the policy has a chance to update or invalidate any cached data that it maintains per scope about the node.inherited -
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void - Add additional properties associated with the node.
-
findFirstFocus(
FocusNode currentNode) → FocusNode? -
Returns the node that should receive focus if focus is traversing
forwards, and there is no current focus.
inherited
-
findFirstFocusInDirection(
FocusNode currentNode, TraversalDirection direction) → FocusNode? -
Returns the first node in the given
direction
that should receive focus if there is no current focus in the scope to which thecurrentNode
belongs.inherited -
findLastFocus(
FocusNode currentNode) → FocusNode -
Returns the node that should receive focus if focus is traversing
backwards, and there is no current focus.
inherited
-
inDirection(
FocusNode currentNode, TraversalDirection direction) → bool -
Focuses the next widget in the given
direction
in the FocusScope that contains thecurrentNode
.mustCallSuper">@mustCallSuperinherited -
invalidateScopeData(
FocusScopeNode node) → void -
Clears the data associated with the given FocusScopeNode for this object.
inherited
-
next(
FocusNode currentNode) → bool -
Focuses the next widget in the focus scope that contains the given
currentNode
.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited
-
previous(
FocusNode currentNode) → bool -
Focuses the previous widget in the focus scope that contains the given
currentNode
.inherited -
sortDescendants(
Iterable< FocusNode> descendants, FocusNode currentNode) → Iterable<FocusNode> -
Sorts the given
descendants
into focus order.override -
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
-
toStringShort(
) → String -
A brief description of this object, usually just the runtimeType and the
hashCode.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited