- override
Override this method to control size of the columns and rows.
Source
@override GridSpecification getGridSpecification(BoxConstraints constraints, int childCount) { if (!constraints.maxWidth.isFinite) { // if we're unbounded, just shrink-wrap around a single line of tiles return new GridSpecification.fromRegularTiles( tileWidth: maxTileWidth, tileHeight: maxTileWidth / tileAspectRatio, columnCount: childCount, rowCount: 1, columnSpacing: columnSpacing, rowSpacing: rowSpacing, padding: padding ); } final double gridWidth = math.max(0.0, constraints.maxWidth - padding.horizontal); // We inflate the gridWidth by columnSpacing because the columnSpacing for // the rightmost tile in the grid doesn't actually consume space in the // grid because the rightmost tile is flush to the right interior edge of // the grid. final double totalColumnExtent = gridWidth + columnSpacing; final double maxColumnWidth = maxTileWidth + columnSpacing; final int columnCount = (totalColumnExtent / maxColumnWidth).ceil(); final int rowCount = (childCount / columnCount).ceil(); final double columnWidth = totalColumnExtent / columnCount; final double tileWidth = columnWidth - columnSpacing; final double tileHeight = tileWidth / tileAspectRatio; return new GridSpecification.fromRegularTiles( tileWidth: tileWidth, tileHeight: tileHeight, columnCount: columnCount, rowCount: rowCount, columnSpacing: columnSpacing, rowSpacing: rowSpacing, padding: padding ); }