layout method

  1. @override
void layout(
  1. BoxConstraints constraints
)
override

Implementation

@override
void layout(BoxConstraints constraints) {
  super.layout(constraints);
  _runs = _computeRuns(constraints);

  if (_runs.isEmpty) {
    size = constraints.constrain(Size.zero);
    return;
  }

  final contentMain = _runs.map((r) => r.main).reduce(math.max);
  final contentCross =
      _runs.fold<int>(0, (sum, run) => sum + run.cross) +
      (runSpacing * math.max(0, _runs.length - 1));

  final width = _isHorizontal ? contentMain : contentCross;
  final height = _isHorizontal ? contentCross : contentMain;

  size = constraints.constrain(Size(width.toDouble(), height.toDouble()));
}