placeImplicitly method

  1. @override
dynamic placeImplicitly({
  1. required int rowSpan,
  2. required int columnSpan,
  3. required Widget content,
})
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,
  );
}