requestFocus method
inherited
Requests the primary focus for this node, or for a supplied node
, which
will also give focus to its ancestors.
If called without a node, request focus for this node.
If the given node
is not yet a part of the focus tree, then this method
will add the node
as a child of this node before requesting focus.
If the given node
is a FocusScopeNode
and that focus scope node has a
non-null focusedChild
, then request the focus for the focused child.
This process is recursive and continues until it encounters either a focus
scope node with a null focused child or an ordinary (non-scope)
FocusNode
is found.
The node is notified that it has received the primary focus in a microtask, so notification may lag the request by up to one frame.
Implementation
void requestFocus([FocusNode node]) {
if (node != null) {
if (node._parent == null) {
_reparent(node);
}
assert(node.ancestors.contains(this),
'Focus was requested for a node that is not a descendant of the scope from which it was requested.');
node._doRequestFocus();
return;
}
_doRequestFocus();
}