SliverGrid class

A sliver that places multiple box children in a two dimensional arrangement.

SliverGrid places its children in arbitrary positions determined by gridDelegate. Each child is forced to have the size specified by the gridDelegate.

The main axis direction of a grid is the direction in which it scrolls; the cross axis direction is the orthogonal direction.

Sample code

This example, which would be inserted into a CustomScrollView.slivers list, shows twenty boxes in a pretty teal grid:

new SliverGrid(
  gridDelegate: new SliverGridDelegateWithMaxCrossAxisExtent(
    maxCrossAxisExtent: 200.0,
    mainAxisSpacing: 10.0,
    crossAxisSpacing: 10.0,
    childAspectRatio: 4.0,
  ),
  delegate: new SliverChildBuilderDelegate(
    (BuildContext context, int index) {
      return new Container(
        alignment: Alignment.center,
        color: Colors.teal[100 * (index % 9)],
        child: new Text('grid item $index'),
      );
    },
    childCount: 20,
  ),
)

See also:

Inheritance

Constructors

SliverGrid({Key key, @required SliverChildDelegate delegate, @required SliverGridDelegate gridDelegate })
Creates a sliver that places multiple box children in a two dimensional arrangement.
const
SliverGrid.count({Key key, @required int crossAxisCount, double mainAxisSpacing: 0.0, double crossAxisSpacing: 0.0, double childAspectRatio: 1.0, List<Widget> children: const [] })
Creates a sliver that places multiple box children in a two dimensional arrangement with a fixed number of tiles in the cross axis. [...]
SliverGrid.extent({Key key, @required double maxCrossAxisExtent, double mainAxisSpacing: 0.0, double crossAxisSpacing: 0.0, double childAspectRatio: 1.0, List<Widget> children: const [] })
Creates a sliver that places multiple box children in a two dimensional arrangement with tiles that each have a maximum cross-axis extent. [...]

Properties

gridDelegate SliverGridDelegate
The delegate that controls the size and position of the children.
final
delegate SliverChildDelegate
The delegate that provides the children for this widget. [...]
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
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

Methods

createRenderObject(BuildContext context) RenderSliverGrid
estimateMaxScrollOffset(SliverConstraints constraints, int firstIndex, int lastIndex, double leadingScrollOffset, double trailingScrollOffset) double
Returns an estimate of the max scroll extent for all the children. [...]
updateRenderObject(BuildContext context, RenderSliverGrid renderObject) → void
Copies the configuration described by this RenderObjectWidget to the given RenderObject, which will be of the same type as returned by this object's createRenderObject. [...]
createElement() SliverMultiBoxAdaptorElement
RenderObjectWidgets always inflate to a RenderObjectElement subclass.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
inherited
didUnmountRenderObject(RenderObject renderObject) → void
A render object previously associated with this widget has been removed from the tree. The given RenderObject will be of the same type as returned by this object's createRenderObject.
@protected, inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
toDiagnosticsNode({String name, DiagnosticsTreeStyle style }) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by toStringDeep. [...]
inherited
toString({DiagnosticLevel minLevel: DiagnosticLevel.debug }) String
Returns a string representation of this object.
inherited
toStringDeep({String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug }) String
Returns a string representation of this node and its descendants. [...]
inherited
toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug }) String
Returns a one-line detailed description of the object. [...]
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(dynamic other) bool
The equality operator. [...]
inherited