size method
Applies tight size constraints to this widget.
Implementation
@widgetFactory
Widget size({
  double? width,
  double? height,
  Size? size,
  double? square,
  bool? expand,
  bool? shrink,
  bool fractional = false,
  bool overflow = false,
  AlignmentGeometry? alignment,
}) {
  assert(
    !fractional || (expand == null && shrink == null),
    'fractional cannot be used with expand or shrink',
  );
  assert(
    !overflow || (expand == null && shrink == null),
    'overflow cannot be used with expand or shrink',
  );
  assert(
    overflow || alignment == null,
    'alignment can only be used with overflow',
  );
  assert(() {
    _debugCheckParameterCombinations(modifier: 'size', [
      {'width': width, 'height': height},
      {'size': size},
      {'square': square},
      {'expand': expand},
      {'shrink': shrink},
    ]);
    return true;
  }());
  if (expand ?? false) {
    return FleetSizedBox.expand(child: this);
  } else if (shrink ?? false) {
    return FleetSizedBox.shrink(child: this);
  } else {
    width ??= size?.width ?? square;
    height ??= size?.height ?? square;
    if (fractional) {
      return FleetFractionallySizedBox(
        widthFactor: width,
        heightFactor: height,
        child: this,
      );
    } else if (overflow) {
      return FleetSizedOverflowBox(
        size: Size(width!, height!),
        alignment: alignment ?? Alignment.center,
        child: this,
      );
    } else {
      return FleetSizedBox(
        width: width,
        height: height,
        child: this,
      );
    }
  }
}