placeImplicitly method
dynamic
placeImplicitly({})
override
Implementation
@override
placeImplicitly({
required int rowSpan,
required int columnSpan,
required Widget content,
}) {
final anchor = _placementPolicy.anchor;
final lastItem = _content.lastOrNull;
int row;
int column;
switch (_placementPolicy.mainAxis) {
case Axis.horizontal:
row = findCurrentRow(_cells, _placementPolicy, lastItem);
column = findNextColumn(_cells, _placementPolicy, lastItem);
if (_cells.isColumnOutsideOfGrid(column, columnSpan, anchor)) {
column = _cells.firstColumn(_placementPolicy);
row = findNextRow(_cells, _placementPolicy, lastItem);
}
break;
case Axis.vertical:
column = findCurrentColumn(_cells, _placementPolicy, lastItem);
row = findNextRow(_cells, _placementPolicy, lastItem);
if (_cells.isRowOutsideOfGrid(row, rowSpan, anchor)) {
row = _cells.firstRow(_placementPolicy);
column = findNextColumn(_cells, _placementPolicy, lastItem);
}
break;
}
placeExplicitly(
row: row,
column: column,
rowSpan: rowSpan,
columnSpan: columnSpan,
content: content,
);
}