performBoxLayout method
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),
);
}
}