rebuild method

  1. @override
void rebuild()
override

Rebuilds the element.

Implementation

@override
void rebuild() {
  final listView = widget as ListView;
  final newElements = <Element>[];
  for (var i = 0; i < listView.children.length; i++) {
    final childWidget = listView.children[i];
    if (i < childElements.length &&
        childElements[i].widget.runtimeType == childWidget.runtimeType) {
      childElements[i].update(childWidget);
      newElements.add(childElements[i]);
    } else {
      if (i < childElements.length) {
        childElements[i].unmount();
      }
      final newEl = childWidget.createElement();
      newEl.mount(this);
      newElements.add(newEl);
    }
  }
  for (var i = listView.children.length; i < childElements.length; i++) {
    childElements[i].unmount();
  }
  childElements = newElements;
}