splitHorizontalByLargestRemainder function
Splits area into horizontal segments using stable largest-remainder sizing.
Use previousAllocations to stabilize ties across consecutive layout frames.
Implementation
({List<Rectangle> columns}) splitHorizontalByLargestRemainder(
Rectangle area,
List<int> weights, {
List<int> previousAllocations = const [],
}) {
final widths = splitByLargestRemainder(
area.width,
weights,
previous: previousAllocations,
);
var x = area.minX;
final columns = <Rectangle>[];
for (final width in widths) {
columns.add(
Rectangle(minX: x, minY: area.minY, maxX: x + width, maxY: area.maxY),
);
x += width;
}
return (columns: columns);
}