FloatingActionButton.extended constructor Null safety

FloatingActionButton.extended(
  1. {Key? key,
  2. String? tooltip,
  3. Color? foregroundColor,
  4. Color? backgroundColor,
  5. Color? focusColor,
  6. Color? hoverColor,
  7. Object? heroTag: const _DefaultHeroTag(),
  8. double? elevation,
  9. double? focusElevation,
  10. double? hoverElevation,
  11. Color? splashColor,
  12. double? highlightElevation,
  13. double? disabledElevation,
  14. required VoidCallback? onPressed,
  15. MouseCursor? mouseCursor: SystemMouseCursors.click,
  16. ShapeBorder? shape,
  17. bool isExtended: true,
  18. MaterialTapTargetSize? materialTapTargetSize,
  19. Clip clipBehavior: Clip.none,
  20. FocusNode? focusNode,
  21. bool autofocus: false,
  22. Widget? icon,
  23. required Widget label}
)

Creates a wider StadiumBorder-shaped floating action button with an optional icon and a label.

The label, autofocus, and clipBehavior arguments must not be null. Additionally, elevation, highlightElevation, and disabledElevation (if specified) must be non-negative.

Implementation

FloatingActionButton.extended({
  Key? key,
  this.tooltip,
  this.foregroundColor,
  this.backgroundColor,
  this.focusColor,
  this.hoverColor,
  this.heroTag = const _DefaultHeroTag(),
  this.elevation,
  this.focusElevation,
  this.hoverElevation,
  this.splashColor,
  this.highlightElevation,
  this.disabledElevation,
  required this.onPressed,
  this.mouseCursor = SystemMouseCursors.click,
  this.shape,
  this.isExtended = true,
  this.materialTapTargetSize,
  this.clipBehavior = Clip.none,
  this.focusNode,
  this.autofocus = false,
  Widget? icon,
  required Widget label,
}) : assert(elevation == null || elevation >= 0.0),
     assert(focusElevation == null || focusElevation >= 0.0),
     assert(hoverElevation == null || hoverElevation >= 0.0),
     assert(highlightElevation == null || highlightElevation >= 0.0),
     assert(disabledElevation == null || disabledElevation >= 0.0),
     assert(isExtended != null),
     assert(clipBehavior != null),
     assert(autofocus != null),
     _sizeConstraints = _kExtendedSizeConstraints,
     mini = false,
     child = _ChildOverflowBox(
       child: Row(
         mainAxisSize: MainAxisSize.min,
         children: icon == null
           ? <Widget>[
               const SizedBox(width: 20.0),
               label,
               const SizedBox(width: 20.0),
             ]
           : !isExtended ? <Widget>[
             const SizedBox(width: 20.0),
             icon,
             const SizedBox(width: 20.0),
         ] : <Widget>[
               const SizedBox(width: 16.0),
               icon,
               const SizedBox(width: 8.0),
               label,
               const SizedBox(width: 20.0),
             ],
       ),
     ),
     super(key: key);