layout method
Implementation
@override
void layout(BoxConstraints constraints) {
super.layout(constraints);
if (children.isNotEmpty) {
final child = children.first;
final trackWidth = math
.max(thickness, gutterWidth ?? thickness)
.toDouble();
final reserved = overlay ? 0.0 : (math.max(0, gap) + trackWidth);
var childConstraints = constraints;
if (!overlay && constraints.hasBoundedWidth) {
final maxWidth = math.max(0.0, constraints.maxWidth - reserved);
final minWidth = math.min(constraints.minWidth, maxWidth);
childConstraints = BoxConstraints(
minWidth: minWidth,
maxWidth: maxWidth,
minHeight: constraints.minHeight,
maxHeight: constraints.maxHeight,
);
}
child.layout(childConstraints);
size = constraints.constrain(
Size(child.size.width + reserved, child.size.height),
);
}
}