splitHorizontalByLargestRemainder function

({List<Rectangle> columns}) splitHorizontalByLargestRemainder(
  1. Rectangle area,
  2. List<int> weights, {
  3. List<int> previousAllocations = const [],
})

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);
}