distributeSpace static method

(double, double) distributeSpace(
  1. MainAxisAlignment alignment,
  2. double freeSpace,
  3. int count
)

The leading gap and the gap between each pair of adjacent items, for freeSpace distributed across count items per alignment.

Implementation

static (double, double) distributeSpace(
  MainAxisAlignment alignment,
  double freeSpace,
  int count,
) {
  return switch (alignment) {
    .start => (0, 0),
    .end => (freeSpace, 0),
    .center => (freeSpace / 2, 0),
    .spaceBetween => (
      0,
      count > 1 ? freeSpace / (count - 1) : 0,
    ),
    .spaceAround => (
      count > 0 ? freeSpace / count / 2 : 0,
      count > 0 ? freeSpace / count : 0,
    ),
    .spaceEvenly => (
      count > 0 ? freeSpace / (count + 1) : 0,
      count > 0 ? freeSpace / (count + 1) : 0,
    ),
  };
}