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) {
  if (_child != null) {
    // Use existing infrastructure: deflate constraints by padding amount
    final childConstraints = constraints.deflate(
      width: _padding.left + _padding.right,
      height: _padding.top + _padding.bottom,
    );

    // Layout child with reduced constraints
    _child!.layout(childConstraints);

    // Position child with padding offset (use existing method)
    positionChild(_child!, _padding.left, _padding.top);

    // Size ourselves to child + padding
    size = Size(
      constraints.constrainWidth(
        _child!.width + _padding.left + _padding.right,
      ),
      constraints.constrainHeight(
        _child!.height + _padding.top + _padding.bottom,
      ),
    );
  } else {
    // No child, size to just the padding
    size = Size(
      constraints.constrainWidth(_padding.left + _padding.right),
      constraints.constrainHeight(_padding.top + _padding.bottom),
    );
  }
}