getGridItemSize function
Computing GridItem Size
Implementation
Size getGridItemSize({
required int total,
required Size gridSize,
required double crossAxisSpacing,
required double mainAxisSpacing,
required int crossCount,
required Axis direction,
}) {
int line = 1;
if (total > 0) {
line = (total ~/ crossCount);
line += (total % crossCount > 0 ? 1 : 0);
}
if (direction == Axis.vertical) {
return Size(
(gridSize.width - crossAxisSpacing * (crossCount - 1)) / crossCount,
(gridSize.height - mainAxisSpacing * (line - 1)) / line,
);
}
if (direction == Axis.horizontal) {
return Size(
(gridSize.width - mainAxisSpacing * (line - 1)) / line,
(gridSize.height - crossAxisSpacing * (crossCount - 1)) / crossCount,
);
}
return Size.zero;
}