FocusTraversalPolicy class abstract

Determines how focusable widgets are traversed within a FocusTraversalGroup.

The focus traversal policy is what determines which widget is "next", "previous", or in a direction from the widget associated with the currently focused FocusNode (usually a Focus widget).

One of the pre-defined subclasses may be used, or define a custom policy to create a unique focus order.

When defining your own, your subclass should implement sortDescendants to provide the order in which you would like the descendants to be traversed.

See also:

Mixed-in types
Implementers
Annotations

Constructors

FocusTraversalPolicy({TraversalRequestFocusCallback? requestFocusCallback})
Abstract const constructor. This constructor enables subclasses to provide const constructors so that they can be used in const expressions.
const

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.
final
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.
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.
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 the currentNode belongs.
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.
inDirection(FocusNode currentNode, TraversalDirection direction) bool
Focuses the next widget in the given direction in the focus scope that contains the given currentNode.
invalidateScopeData(FocusScopeNode node) → void
Clears the data associated with the given FocusScopeNode for this object.
next(FocusNode currentNode) bool
Focuses the next widget in the focus scope that contains the given currentNode.
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.
sortDescendants(Iterable<FocusNode> descendants, FocusNode currentNode) Iterable<FocusNode>
Sorts the given descendants into focus order.
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

Static Methods

defaultTraversalRequestFocusCallback(FocusNode node, {ScrollPositionAlignmentPolicy? alignmentPolicy, double? alignment, Duration? duration, Curve? curve}) → void
The default value for requestFocusCallback. Requests focus from node and ensures the node is visible by calling Scrollable.ensureVisible.