getDragGridSize function
Computing Drag Grid Size
Implementation
Size getDragGridSize({
required int total,
required Size viewSize,
required double childAspectRatio,
required double crossAxisSpacing,
required double mainAxisSpacing,
required int crossCount,
required Axis direction,
}) {
int line = 1;
double width = 0.0;
double height = 0.0;
double ctxWidth = viewSize.width;
double ctxHeight = viewSize.height;
line = (total ~/ crossCount);
line += (total % crossCount > 0 ? 1 : 0);
if (direction == Axis.vertical) {
width = (ctxWidth - crossAxisSpacing * (crossCount - 1)) / crossCount;
height = width / childAspectRatio * line + mainAxisSpacing * (line - 1);
return Size(ctxWidth, height);
}
if (direction == Axis.horizontal) {
height = (ctxHeight - crossAxisSpacing * (crossCount - 1)) / crossCount;
width = height / childAspectRatio * line + mainAxisSpacing * (line - 1);
return Size(width, ctxHeight);
}
return Size.zero;
}