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.