calculateGrid method

({int columns, Offset gridOffset, Size itemSize, int rows}) calculateGrid()

Рассчитывает метрики сетки без вычисления позиций всех плиток.

Полезно для оптимизаций (например, подбора пресета), когда список позиций не нужен и приводит к лишним аллокациям.

Implementation

({Size itemSize, int columns, int rows, Offset gridOffset}) calculateGrid() {
  final int effectiveCount = _effectiveCount;
  if (effectiveCount == 0) {
    return (
      itemSize: Size.zero,
      columns: 0,
      rows: 0,
      gridOffset: Offset.zero,
    );
  }
  final ({int columns, int rows}) gridConfig = _findOptimalGrid(
    effectiveCount,
  );
  final Size itemSize = _calculateItemSize(
    gridConfig.columns,
    gridConfig.rows,
    effectiveCount,
  );
  final Offset gridOffset = _calculateGridOffset(
    itemSize,
    gridConfig.columns,
    gridConfig.rows,
  );
  return (
    itemSize: itemSize,
    columns: gridConfig.columns,
    rows: gridConfig.rows,
    gridOffset: gridOffset,
  );
}