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,
bool 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,
);