StaggeredGridView.extent constructor
StaggeredGridView.extent({
- Key? key,
- Axis scrollDirection = Axis.vertical,
- bool reverse = false,
- ScrollController? controller,
- bool? primary,
- ScrollPhysics? physics,
- bool shrinkWrap = false,
- EdgeInsetsGeometry? padding,
- required double maxCrossAxisExtent,
- double mainAxisSpacing = 0.0,
- double crossAxisSpacing = 0.0,
- bool addAutomaticKeepAlives = true,
- bool addRepaintBoundaries = true,
- List<
Widget> children = const <Widget>[], - List<
StaggeredTile> staggeredTiles = const <StaggeredTile>[], - String? restorationId,
Creates a scrollable, 2D array of widgets of variable sizes with tiles that each have a maximum cross-axis extent.
Uses a SliverGridDelegateWithMaxCrossAxisExtent as the gridDelegate.
Providing a non-null itemCount improves the ability of the
SliverStaggeredGridDelegate to estimate the maximum scroll extent.
itemBuilder and staggeredTileBuilder will be called only with
indices greater than or equal to
zero and less than itemCount.
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.extent({
Key? key,
Axis scrollDirection = Axis.vertical,
bool reverse = false,
ScrollController? controller,
bool? primary,
ScrollPhysics? physics,
bool shrinkWrap = false,
EdgeInsetsGeometry? padding,
required double maxCrossAxisExtent,
double mainAxisSpacing = 0.0,
double crossAxisSpacing = 0.0,
this.addAutomaticKeepAlives = true,
bool addRepaintBoundaries = true,
List<Widget> children = const <Widget>[],
List<StaggeredTile> staggeredTiles = const <StaggeredTile>[],
String? restorationId,
}) : gridDelegate = SliverStaggeredGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: maxCrossAxisExtent,
mainAxisSpacing: mainAxisSpacing,
crossAxisSpacing: crossAxisSpacing,
staggeredTileBuilder: (i) => staggeredTiles[i],
staggeredTileCount: staggeredTiles.length,
),
childrenDelegate = SliverChildListDelegate(
children,
addAutomaticKeepAlives: addAutomaticKeepAlives,
addRepaintBoundaries: addRepaintBoundaries,
),
super(
key: key,
scrollDirection: scrollDirection,
reverse: reverse,
controller: controller,
primary: primary,
physics: physics,
shrinkWrap: shrinkWrap,
padding: padding,
restorationId: restorationId,
);