calculateGrid method
Рассчитывает метрики сетки без вычисления позиций всех плиток.
Полезно для оптимизаций (например, подбора пресета), когда список позиций не нужен и приводит к лишним аллокациям.
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,
);
}