attach method Null safety
- covariant SemanticsOwner owner
override
Mark this node as attached to the given owner.
Typically called only from the parent's attach method, and by the
owner
to mark the root of a tree as attached.
Subclasses with children should override this method to first call their
inherited attach method, and then attach all their children to the
same owner
.
Implementations of this method should start with a call to the inherited
method, as in super.attach(owner)
.
Implementation
@override
void attach(SemanticsOwner owner) {
super.attach(owner);
while (owner._nodes.containsKey(id)) {
// Ids may repeat if the Flutter has generated > 2^16 ids. We need to keep
// regenerating the id until we found an id that is not used.
_id = _generateNewId();
}
owner._nodes[id] = this;
owner._detachedNodes.remove(this);
if (_dirty) {
_dirty = false;
_markDirty();
}
if (_children != null) {
for (final SemanticsNode child in _children!) {
child.attach(owner);
}
}
}