A scrollable, 2D array of widgets.

The most commonly used grid layouts are GridView.count, which creates a layout with a fixed number of tiles in the cross axis, and GridView.extent, which creates a layout with tiles that have a maximum cross-axis extent. A custom SliverGridDelegate can produce an aribtrary 2D arrangement of children, including arrangements that are unaligned or overlapping.

To create a grid with a large (or infinite) number of children, use the GridView.builder constructor with either a SliverGridDelegateWithFixedCrossAxisCount or a SliverGridDelegateWithMaxCrossAxisExtent for the gridDelegate.

To use a custom SliverChildDelegate, use GridView.custom.

To create a linear array of children, use a ListView.

See also:

Inheritance

Constructors

GridView({Key key, Axis scrollDirection: Axis.vertical, bool reverse: false, ScrollController controller, bool primary, ScrollPhysics physics, bool shrinkWrap: false, EdgeInsets padding, SliverGridDelegate gridDelegate, List<Widget> children: const [] })

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

GridView.builder({Key key, Axis scrollDirection: Axis.vertical, bool reverse: false, ScrollController controller, bool primary, ScrollPhysics physics, bool shrinkWrap: false, EdgeInsets padding, SliverGridDelegate gridDelegate, IndexedWidgetBuilder itemBuilder, int itemCount })

Creates a scrollable, 2D array of widgets that are created on demand.

GridView.count({Key key, Axis scrollDirection: Axis.vertical, bool reverse: false, ScrollController controller, bool primary, ScrollPhysics physics, bool shrinkWrap: false, EdgeInsets padding, int crossAxisCount, double mainAxisSpacing: 0.0, double crossAxisSpacing: 0.0, double childAspectRatio: 1.0, List<Widget> children: const [] })

Creates a scrollable, 2D array of widgets with a fixed number of tiles in the cross axis.

GridView.custom({Key key, Axis scrollDirection: Axis.vertical, bool reverse: false, ScrollController controller, bool primary, ScrollPhysics physics, bool shrinkWrap: false, EdgeInsets padding, SliverGridDelegate gridDelegate, SliverChildDelegate childrenDelegate })

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

GridView.extent({Key key, Axis scrollDirection: Axis.vertical, bool reverse: false, ScrollController controller, bool primary, ScrollPhysics physics, bool shrinkWrap: false, EdgeInsets padding, double maxCrossAxisExtent, double mainAxisSpacing: 0.0, double crossAxisSpacing: 0.0, double childAspectRatio: 1.0, List<Widget> children: const [] })

Creates a scrollable, 2D array of widgets with tiles that have a maximum cross-axis extent.

Properties

childrenDelegate SliverChildDelegate

A delegate that provides the children for the GridView.

final
gridDelegate SliverGridDelegate

A delegate that controls the layout of the children within the GridView.

final
controller ScrollController

An object that can be used to control the position to which this scroll view is scrolled.

final, inherited
hashCode int

The hash code for this object.

read-only, inherited
key Key

Controls how one widget replaces another widget in the tree.

final, inherited
padding EdgeInsets

The amount of space by which to inset the children.

final, inherited
physics ScrollPhysics

How the scroll view should respond to user input.

final, inherited
primary bool

Whether this is the primary scroll view associated with the parent PrimaryScrollController.

final, inherited
reverse bool

Whether the scroll view scrolls in the reading direction.

final, inherited
runtimeType Type

A representation of the runtime type of the object.

read-only, inherited
scrollDirection Axis

The axis along which the scroll view scrolls.

final, inherited
shrinkWrap bool

Whether the extent of the scroll view in the scrollDirection should be determined by the contents being viewed.

final, inherited

Methods

buildChildLayout(BuildContext context) Widget

Subclasses should override this method to build the layout model.

build(BuildContext context) Widget

Describes the part of the user interface represented by this widget.

inherited
buildSlivers(BuildContext context) List<Widget>

Subclasses should override this method to build the slivers for the inside of the viewport.

inherited
createElement() StatelessElement

Creates a StatelessElement to manage this widget's location in the tree.

inherited
debugFillDescription(List<String> description) → void

Add additional information to the given description for use by toString.

inherited
getDirection(BuildContext context) AxisDirection

Returns the AxisDirection in which the scroll view scrolls.

@protected, inherited
noSuchMethod(Invocation invocation) → dynamic

Invoked when a non-existent method or property is accessed.

inherited
toString() String

Returns a string representation of this object.

inherited
toStringShort() String

A short, textual description of this widget.

inherited

Operators

operator ==(other) bool

The equality operator.

inherited