layout method
Implementation
@override
void layout(BoxConstraints constraints) {
super.layout(constraints);
final targetWidth = _resolveDimension(width)?.toDouble();
final targetHeight = _resolveDimension(height)?.toDouble();
final childConstraints = BoxConstraints(
minWidth: targetWidth ?? constraints.minWidth,
maxWidth: targetWidth ?? constraints.maxWidth,
minHeight: targetHeight ?? constraints.minHeight,
maxHeight: targetHeight ?? constraints.maxHeight,
);
_child?.layout(childConstraints);
final rendered = _constrainContent(
_child?.paint() ?? '',
width: targetWidth?.toInt(),
height: targetHeight?.toInt(),
);
_lastPaint = rendered;
final measured = constraints.constrain(
Size(
targetWidth ?? _child?.size.width ?? 0,
targetHeight ?? _child?.size.height ?? 0,
),
);
size = constraints.constrain(Size(measured.width, measured.height));
}