StaggeredGridView.extentBuilder constructor

StaggeredGridView.extentBuilder({
  1. Key? key,
  2. Axis scrollDirection = Axis.vertical,
  3. bool reverse = false,
  4. ScrollController? controller,
  5. bool? primary,
  6. ScrollPhysics? physics,
  7. bool shrinkWrap = false,
  8. EdgeInsetsGeometry? padding,
  9. required double maxCrossAxisExtent,
  10. required IndexedWidgetBuilder itemBuilder,
  11. required IndexedStaggeredTileBuilder staggeredTileBuilder,
  12. int? itemCount,
  13. double mainAxisSpacing = 0.0,
  14. double crossAxisSpacing = 0.0,
  15. bool addAutomaticKeepAlives = true,
  16. bool addRepaintBoundaries = true,
  17. 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:

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