buildContent method
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;
}