performLayout method

  1. @override
void performLayout(
  1. Constraints constraints
)
override

Called to perform the actual layout computation for this render object.

Implementation

@override
void performLayout(Constraints constraints) {
  final boxConstraints = constraints.asBoxConstraints;
  final isHorizontal = direction == Axis.horizontal;
  final totalFlex = _computeTotalFlex();
  final maxMainAxisExtent =
      isHorizontal ? boxConstraints.maxWidth : boxConstraints.maxHeight;
  final crossAxisExtent =
      isHorizontal ? boxConstraints.maxHeight : boxConstraints.maxWidth;

  final measurement = _measureChildren(
    isHorizontal,
    boxConstraints,
    totalFlex,
    maxMainAxisExtent,
  );

  size = _computeSize(
    isHorizontal,
    measurement.nonFlexExtent,
    measurement.flexExtent,
    maxMainAxisExtent,
    crossAxisExtent,
    measurement.crossExtent,
  );

  _resolveAndPositionChildren(
    isHorizontal,
    measurement.nonFlexExtent,
    measurement.flexExtent,
  );
}