GridView constructor Null safety

GridView(
  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 SliverGridDelegate gridDelegate,
  10. bool addAutomaticKeepAlives = true,
  11. bool addRepaintBoundaries = true,
  12. bool addSemanticIndexes = true,
  13. double? cacheExtent,
  14. List<Widget> children = const <Widget>[],
  15. int? semanticChildCount,
  16. DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  17. Clip clipBehavior = Clip.hardEdge,
  18. ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  19. String? restorationId}
)

Creates a scrollable, 2D array of widgets with a custom SliverGridDelegate.

The gridDelegate argument must not be null.

The addAutomaticKeepAlives argument corresponds to the SliverChildListDelegate.addAutomaticKeepAlives property. The addRepaintBoundaries argument corresponds to the SliverChildListDelegate.addRepaintBoundaries property. Both must not be null.

Implementation

GridView({
  super.key,
  super.scrollDirection,
  super.reverse,
  super.controller,
  super.primary,
  super.physics,
  super.shrinkWrap,
  super.padding,
  required this.gridDelegate,
  bool addAutomaticKeepAlives = true,
  bool addRepaintBoundaries = true,
  bool addSemanticIndexes = true,
  super.cacheExtent,
  List<Widget> children = const <Widget>[],
  int? semanticChildCount,
  super.dragStartBehavior,
  super.clipBehavior,
  super.keyboardDismissBehavior,
  super.restorationId,
}) : assert(gridDelegate != null),
     childrenDelegate = SliverChildListDelegate(
       children,
       addAutomaticKeepAlives: addAutomaticKeepAlives,
       addRepaintBoundaries: addRepaintBoundaries,
       addSemanticIndexes: addSemanticIndexes,
     ),
     super(
       semanticChildCount: semanticChildCount ?? children.length,
     );