SuperSliverList.separated constructor
SuperSliverList.separated({
- Key? key,
- required NullableIndexedWidgetBuilder itemBuilder,
- ChildIndexGetter? findChildIndexCallback,
- required NullableIndexedWidgetBuilder separatorBuilder,
- ExtentPrecalculationPolicy? extentPrecalculationPolicy,
- ListController? listController,
- ExtentEstimationProvider? extentEstimation,
- bool delayPopulatingCacheArea = true,
- bool layoutKeptAliveChildren = false,
- int? itemCount,
- bool addAutomaticKeepAlives = true,
- bool addRepaintBoundaries = true,
- bool addSemanticIndexes = true,
Creates a SuperSliverList from widget builder separated by separator widgets.
See SliverList.separated for details.
Implementation
SuperSliverList.separated({
super.key,
required NullableIndexedWidgetBuilder itemBuilder,
ChildIndexGetter? findChildIndexCallback,
required NullableIndexedWidgetBuilder separatorBuilder,
this.extentPrecalculationPolicy,
this.listController,
this.extentEstimation,
this.delayPopulatingCacheArea = true,
this.layoutKeptAliveChildren = false,
int? itemCount,
bool addAutomaticKeepAlives = true,
bool addRepaintBoundaries = true,
bool addSemanticIndexes = true,
}) : super(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
final int itemIndex = index ~/ 2;
final Widget? widget;
if (index.isEven) {
widget = itemBuilder(context, itemIndex);
} else {
widget = separatorBuilder(context, itemIndex);
assert(() {
if (widget == null) {
throw FlutterError("separatorBuilder cannot return null.");
}
return true;
}());
}
return widget;
},
findChildIndexCallback: findChildIndexCallback,
childCount:
itemCount == null ? null : math.max(0, itemCount * 2 - 1),
addAutomaticKeepAlives: addAutomaticKeepAlives,
addRepaintBoundaries: addRepaintBoundaries,
addSemanticIndexes: addSemanticIndexes,
semanticIndexCallback: (Widget _, int index) {
return index.isEven ? index ~/ 2 : null;
},
),
);