detach method Null safety

  1. @override
void detach()
override

Mark this node as detached.

Typically called only from the parent's detach, and by the owner to mark the root of a tree as detached.

Subclasses with children should override this method to first call their inherited detach method, and then detach all their children.

Implementations of this method should end with a call to the inherited method, as in super.detach().

Implementation

@override
void detach() {
  assert(!_debugMutationsLocked);
  super.detach();
  Layer? child = firstChild;
  while (child != null) {
    child.detach();
    child = child.nextSibling;
  }
  // Detach indicates that we may never be composited again. Clients
  // interested in observing composition need to get an update here because
  // they might otherwise never get another one even though the layer is no
  // longer visible.
  //
  // Children fired them already in child.detach().
  _fireCompositionCallbacks(includeChildren: false);
}