ReadingOrderTraversalPolicy class
Traverses the focus order in "reading order".
By default, reading order traversal goes in the reading direction, and then down, using this algorithm:
- Find the node rectangle that has the highest
top
on the screen. - Find any other nodes that intersect the infinite horizontal band defined by the highest rectangle's top and bottom edges.
- Pick the closest to the beginning of the reading order from among the nodes discovered above.
It uses the ambient Directionality in the context for the enclosing FocusTraversalGroup to determine which direction is "reading order".
See also:
- FocusNode, for a description of the focus system.
- 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.
- DirectionalFocusTraversalPolicyMixin a mixin class that implements focus traversal in a direction.
- OrderedTraversalPolicy, a policy that describes the order explicitly using FocusTraversalOrder widgets.
- Inheritance
-
- Object
- FocusTraversalPolicy
- ReadingOrderTraversalPolicy
- Mixed in types
Constructors
- ReadingOrderTraversalPolicy({TraversalRequestFocusCallback? requestFocusCallback})
- Constructs a traversal policy that orders the widgets in "reading order".
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- requestFocusCallback → TraversalRequestFocusCallback
-
The callback used to move the focus from one focus node to another when
traversing them using a keyboard. By default it requests focus on the next
node and ensures the node is visible if it's in a scrollable.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
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.
inherited
-
findFirstFocus(
FocusNode currentNode, {bool ignoreCurrentFocus = false}) → 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, {bool ignoreCurrentFocus = false}) → 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
.inherited -
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 nonexistent 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