performBoxLayout method

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

Perform layout with typed box constraints

Subclasses override this instead of performLayout. The default implementation sizes to the maxima, treating an unbounded axis as the corresponding lower bound.

Implementation

@override
void performBoxLayout(BoxConstraints constraints) {
  final child = this.child;
  if (child != null) {
    final childConstraints = constraints.deflate(
      width: _padding.left + _padding.right,
      height: _padding.top + _padding.bottom,
    );

    child.layout(childConstraints);

    positionChild(child, _padding.left, _padding.top);

    size = Size(
      constraints.constrainWidth(
        child.width + _padding.left + _padding.right,
      ),
      constraints.constrainHeight(
        child.height + _padding.top + _padding.bottom,
      ),
    );
  } else {
    size = Size(
      constraints.constrainWidth(_padding.left + _padding.right),
      constraints.constrainHeight(_padding.top + _padding.bottom),
    );
  }
}