Animated Loading Button
Animated loading button help you create animated button with customizable design, this animated uses asynchronous callback.
A new well designed animated loading button
Features
- Create button with built-in animation
- Customizable button design
- Progress indicator animated button
- Color changing animated button
- Built-in fading animation on button
- Rotated icon animation on button
- Asynchronous callback invoked with result callback
Getting started
In order to add motion toast to your project add this line to your pubspec.yaml
file
dependencies:
animated_loading_button: ^1.0.0
Usage
Parameters
///Future callback invoked when pressing the button
///required in all button types
final Future<T> Function() onPress;
///callback invoked when [onPress] is finished
///required in all button types.
final Function(T) onAsyncCallFinished;
///the button width
///by default the width is set to 200
final double buttonWidth;
///the button height
///by default it's set to 50
final double buttonHeight;
///the animation duration applied in all animations
///except progress indicator animation
final Duration animationDuration;
///the button color, applied in all types except
///color changing animation button
///by default button color is `Colors.blue`
late Color buttonColor;
///button radius by default it's set to null
final BorderRadius? buttonRadius;
///the button shadow, by default it's null
final BoxShadow? buttonShadow;
///the widget that will be rendered inside the button
late Widget? buttonChild;
///required when using animatedIcon button
///the icon (widget) that will be drawn inside the button
late Widget? buttonIcon;
///required when using animatedIcon button,
///the text that will be rendered inside the button
late Text? buttonText;
///list of colors that will be used in creating
///color changing button animation
///
///should contains 2 colors at least
late List<Color> colors;
///the progress indicator color
///by default it's set to `Colors.blue`
late Color? progressIndicatorColor;
///the progress indicator background color
///by default it's set to `Colors.white`
late Color? progressIndicatorBackground;
///the progress indicator height,
///by default it's set to 5
late double progressIndicatorSize;
Examples
- Rotated icon animation
AnimatedLoadingButton<void>.iconRotation(
buttonText: const Text('Login'),
buttonIcon: const Icon(Icons.logout_outlined),
onPress: onPress,
onAsyncCallFinished: (value) {
print('Login successfull');
},
),
Future<void> onPress() async {
await Future.delayed(const Duration(milliseconds: 4000,),);
}
- Color changing animation
AnimatedLoadingButton<void>.colorChangingButton(
buttonChild: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Icon(Icons.login),
Text('Login')
],
),
colors: [
Colors.blue[400]!,
Colors.blue[800]!,
Colors.blue[900]!,
],
onPress: onPress,
onAsyncCallFinished: (value) {},
),
- Fading animation
AnimatedLoadingButton<void>.fadingAnimation(
buttonChild: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Icon(Icons.login),
Text('Login')
],
),
onPress: onPress,
onAsyncCallFinished: (value) {},
),
- Progress indicator animated button
AnimatedLoadingButton<void>.progressIndicator(
buttonChild: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Icon(Icons.login),
Text('Login')
],
),
onPress: onPress,
onAsyncCallFinished: (value) {},
),
Additional information
Contribution
Of course the project is open source, and you can contribute to it repository link
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.