AnimatedStateButton.simple constructor
AnimatedStateButton.simple({
- Key? key,
- required Future<
void> onAction(), - Widget? label,
- Color initColor = Colors.black,
- double borderRadius = 8,
- double height = 48,
- double compactSize = 48,
- Duration animationDuration = const Duration(milliseconds: 400),
- Curve animationCurve = Curves.easeInOut,
- Duration switchDuration = const Duration(milliseconds: 300),
- Curve switchInCurve = Curves.easeOut,
- Curve switchOutCurve = Curves.easeIn,
- ButtonStyle? buttonStyle,
- bool enabled = true,
- double hoverScale = .02,
- double pressScale = .04,
- double? width,
- EdgeInsetsGeometry padding = const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16),
- void onStateChanged(
- StateId newStateId
- Duration autoResetDelay = const Duration(milliseconds: 600),
- double? elevation,
- Color? shadowColor,
Factory simple sin armar controller a mano.
Implementation
factory AnimatedStateButton.simple({
Key? key,
required Future<void> Function() onAction,
Widget? label,
Color initColor = Colors.black,
double borderRadius = 8,
double height = 48,
double compactSize = 48,
Duration animationDuration = const Duration(milliseconds: 400),
Curve animationCurve = Curves.easeInOut,
Duration switchDuration = const Duration(milliseconds: 300),
Curve switchInCurve = Curves.easeOut,
Curve switchOutCurve = Curves.easeIn,
ButtonStyle? buttonStyle,
bool enabled = true,
double hoverScale = .02,
double pressScale = .04,
double? width,
EdgeInsetsGeometry padding = const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16),
void Function(StateId newStateId)? onStateChanged,
Duration autoResetDelay = const Duration(milliseconds: 600),
double? elevation,
Color? shadowColor,
}) {
final controller = AnimatedStateButtonController(
states: {
'success': ButtonState.success(),
'error': ButtonState.error(),
},
onStateChanged: onStateChanged,
autoResetDelay: autoResetDelay,
);
return AnimatedStateButton._internal(
key: key,
width: width,
controller: controller,
onClick: () => controller.runGuarded(onAction),
onPressed: () => controller.runGuarded(onAction),
initChild: label ?? const Text('Enviar', style: TextStyle(color: Colors.white)),
initColor: initColor,
borderRadius: borderRadius,
height: height,
compactSize: compactSize,
animationDuration: animationDuration,
animationCurve: animationCurve,
switchDuration: switchDuration,
switchInCurve: switchInCurve,
switchOutCurve: switchOutCurve,
buttonStyle: buttonStyle,
enabled: enabled,
hoverScale: hoverScale,
pressScale: pressScale,
padding: padding,
elevation: elevation,
shadowColor: shadowColor,
ownController: true,
);
}