removeChild method
Remove the given child from the child list.
Called by RenderSliverMultiBoxAdaptor.collectGarbage, which itself is
called from RenderSliverMultiBoxAdaptor's performLayout
.
The index of the given child can be obtained using the RenderSliverMultiBoxAdaptor.indexOf method, which reads it from the SliverMultiBoxAdaptorParentData.index field of the child's RenderObject.parentData.
Implementation
@override
void removeChild(RenderBox child) {
if (child is RenderBoxModel) {
SliverMultiBoxAdaptorParentData parentData = child.parentData as SliverMultiBoxAdaptorParentData;
// The index of sliver list.
int index = parentData.index!;
Iterable<Node> renderNodes = _renderNodes;
if (index < renderNodes.length) {
renderNodes
.elementAt(index)
.unmountRenderObject(deep: true);
return;
}
}
// Fallback operation, remove child from sliver list.
_sliverListLayout.remove(child);
}