distributeSpace function
(double, double)
distributeSpace(
- MainAxisAlignment alignment,
- double freeSpace,
- int itemCount,
- bool flipped,
- double spacing,
Implementation
(double leadingSpace, double betweenSpace) distributeSpace(
MainAxisAlignment alignment,
double freeSpace,
int itemCount,
bool flipped,
double spacing) {
assert(itemCount >= 0);
return switch (alignment) {
MainAxisAlignment.start => flipped ? (freeSpace, spacing) : (0.0, spacing),
MainAxisAlignment.end => distributeSpace(
MainAxisAlignment.start, freeSpace, itemCount, !flipped, spacing),
MainAxisAlignment.spaceBetween when itemCount < 2 => distributeSpace(
MainAxisAlignment.start, freeSpace, itemCount, flipped, spacing),
MainAxisAlignment.spaceAround when itemCount == 0 => distributeSpace(
MainAxisAlignment.start, freeSpace, itemCount, flipped, spacing),
MainAxisAlignment.center => (freeSpace / 2.0, spacing),
MainAxisAlignment.spaceBetween => (
0.0,
freeSpace / (itemCount - 1) + spacing
),
MainAxisAlignment.spaceAround => (
freeSpace / itemCount / 2,
freeSpace / itemCount + spacing
),
MainAxisAlignment.spaceEvenly => (
freeSpace / (itemCount + 1),
freeSpace / (itemCount + 1) + spacing
),
};
}