constrainWidget static method
Widget
constrainWidget({
- required M3EToolbarWidget item,
- required double availableExtent,
- required Axis axis,
- double opticalInset = 0,
Wraps a M3EToolbarWidget so it cannot exceed the bar content extent.
opticalInset mirrors the icon-button target overhang beyond its visual
so widget↔action spacing matches action↔action spacing.
Implementation
static Widget constrainWidget({
required M3EToolbarWidget item,
required double availableExtent,
required Axis axis,
double opticalInset = 0,
}) {
Widget child = item.child;
if (item.semanticLabel != null) {
child = Semantics(label: item.semanticLabel, child: child);
}
child = ConstrainedBox(
constraints: axis == Axis.horizontal
? BoxConstraints(maxHeight: availableExtent)
: BoxConstraints(maxWidth: availableExtent),
child: child,
);
if (opticalInset <= 0) {
return child;
}
return Padding(
padding: axis == Axis.horizontal
? EdgeInsets.symmetric(horizontal: opticalInset)
: EdgeInsets.symmetric(vertical: opticalInset),
child: child,
);
}