buildContent method

  1. @override
Widget buildContent(
  1. BuildContext context,
  2. Iterable<T>? source
)
override

Implementation

@override
Widget buildContent(BuildContext context, Iterable<T>? source) {
  Widget? widget = super.buildContent(context, source);

  if (widget == null) {
    final int count = childCount ??
        childCountBuilder?.call(source!.length) ??
        source!.length;
    final ExtendedListDelegate delegate = getExtendedListDelegate(count);

    if (delegate is SliverWaterfallFlowDelegate) {
      widget = WaterfallFlow.builder(
        gridDelegate: delegate,
        scrollDirection: scrollDirection,
        reverse: reverse,
        controller: controller,
        primary: primary,
        physics: physics,
        shrinkWrap: shrinkWrap,
        padding: padding,
        addAutomaticKeepAlives: addAutomaticKeepAlives,
        addRepaintBoundaries: addRepaintBoundaries,
        addSemanticIndexes: addSemanticIndexes,
        cacheExtent: cacheExtent,
        semanticChildCount: semanticChildCount,
        itemBuilder: (BuildContext context, int index) =>
            buildItem(context, index, source!),
        itemCount: count + 1,
        dragStartBehavior: dragStartBehavior,
        keyboardDismissBehavior: keyboardDismissBehavior,
        restorationId: restorationId,
        clipBehavior: clipBehavior,
      );
    } else if (gridDelegate != null) {
      widget = ExtendedGridView.builder(
        gridDelegate: gridDelegate!,
        scrollDirection: scrollDirection,
        reverse: reverse,
        controller: controller,
        primary: primary,
        physics: physics,
        shrinkWrap: shrinkWrap,
        padding: padding,
        addAutomaticKeepAlives: addAutomaticKeepAlives,
        addRepaintBoundaries: addRepaintBoundaries,
        addSemanticIndexes: addSemanticIndexes,
        cacheExtent: cacheExtent,
        semanticChildCount: semanticChildCount,
        itemBuilder: (BuildContext context, int index) =>
            buildItem(context, index, source!),
        extendedListDelegate: delegate,
        itemCount: count + 1,
        dragStartBehavior: dragStartBehavior,
        keyboardDismissBehavior: keyboardDismissBehavior,
        restorationId: restorationId,
        clipBehavior: clipBehavior,
      );
    } else {
      widget = ExtendedListView.builder(
        scrollDirection: scrollDirection,
        reverse: reverse,
        controller: controller,
        primary: primary,
        physics: physics,
        shrinkWrap: shrinkWrap,
        padding: padding,
        itemExtent: itemExtent,
        addAutomaticKeepAlives: addAutomaticKeepAlives,
        addRepaintBoundaries: addRepaintBoundaries,
        addSemanticIndexes: addSemanticIndexes,
        cacheExtent: cacheExtent,
        semanticChildCount: semanticChildCount,
        itemBuilder: (BuildContext context, int index) =>
            buildItem(context, index, source!),
        extendedListDelegate: delegate,
        itemCount: count + 1,
        dragStartBehavior: dragStartBehavior,
        keyboardDismissBehavior: keyboardDismissBehavior,
        restorationId: restorationId,
        clipBehavior: clipBehavior,
      );
    }
  }
  return widget;
}