StaggeredGridView.extentBuilder constructor
StaggeredGridView.extentBuilder({
- Key? key,
- Axis scrollDirection = Axis.vertical,
- bool reverse = false,
- ScrollController? controller,
- bool? primary,
- ScrollPhysics? physics,
- bool shrinkWrap = false,
- EdgeInsetsGeometry? padding,
- required double maxCrossAxisExtent,
- required IndexedWidgetBuilder itemBuilder,
- required IndexedStaggeredTileBuilder staggeredTileBuilder,
- int? itemCount,
- double mainAxisSpacing = 0.0,
- double crossAxisSpacing = 0.0,
- bool addAutomaticKeepAlives = true,
- bool addRepaintBoundaries = true,
- String? restorationId,
Creates a scrollable, 2D array of widgets of variable sizes with tiles that each have a maximum cross-axis extent that are created on demand.
This constructor is appropriate for grid views with a large (or infinite) number of children because the builder is called only for those children that are actually visible.
Uses a SliverGridDelegateWithMaxCrossAxisExtent as the gridDelegate.
The addAutomaticKeepAlives
argument corresponds to the
SliverVariableSizeChildListDelegate.addAutomaticKeepAlives
property. The
addRepaintBoundaries
argument corresponds to the
SliverVariableSizeChildListDelegate.addRepaintBoundaries
property. Both must not be
null.
See also:
- SliverGrid.extent, the equivalent constructor for SliverGrid.
Implementation
StaggeredGridView.extentBuilder({
Key? key,
Axis scrollDirection = Axis.vertical,
bool reverse = false,
ScrollController? controller,
bool? primary,
ScrollPhysics? physics,
bool shrinkWrap = false,
EdgeInsetsGeometry? padding,
required double maxCrossAxisExtent,
required IndexedWidgetBuilder itemBuilder,
required IndexedStaggeredTileBuilder staggeredTileBuilder,
int? itemCount,
double mainAxisSpacing = 0.0,
double crossAxisSpacing = 0.0,
this.addAutomaticKeepAlives = true,
bool addRepaintBoundaries = true,
String? restorationId,
}) : gridDelegate = SliverStaggeredGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: maxCrossAxisExtent,
mainAxisSpacing: mainAxisSpacing,
crossAxisSpacing: crossAxisSpacing,
staggeredTileBuilder: staggeredTileBuilder,
staggeredTileCount: itemCount,
),
childrenDelegate = SliverChildBuilderDelegate(
itemBuilder,
childCount: itemCount,
addAutomaticKeepAlives: addAutomaticKeepAlives,
addRepaintBoundaries: addRepaintBoundaries,
),
super(
key: key,
scrollDirection: scrollDirection,
reverse: reverse,
controller: controller,
primary: primary,
physics: physics,
shrinkWrap: shrinkWrap,
padding: padding,
restorationId: restorationId,
);