Top 6 flutter loading indicators and gifs packages in the pub.dev, These are very beautiful progress indicators to easily use in any flutter app.
1. Flutter Spinkit ( flutter_spinkit )
A collection of loading indicators animated with flutter. Heavily inspired by @tobiasahlin's SpinKit.
Installing
dependencies:
flutter_spinkit: "^4.1.2"
⚡️ Import
import 'package:flutter_spinkit/flutter_spinkit.dart';
🎮 How To Use
const spinkit = SpinKitRotatingCircle(
color: Colors.white,
size: 50.0,
);
final spinkit = SpinKitFadingCircle(
itemBuilder: (BuildContext context, int index) {
return DecoratedBox(
decoration: BoxDecoration(
color: index.isEven ? Colors.red : Colors.green,
),
);
},
);
final spinkit = SpinKitSquareCircle(
color: Colors.white,
size: 50.0,
controller: AnimationController(vsync: this, duration: const Duration(milliseconds: 1200)),
);
For more info, please, refer to the showcase.dart in the example.
Showcase



Circle CubeGrid FadingCircle

RotatingCircle FoldingCube PumpingHeart


FadingGrid Ring Ripple

SpinningCircle SquareCircle

2. Flutter Loading Animations ( loading_animations )
A simple yet very customizable set of loading animations for Flutter projects.Installation
Add the following to your pubspec.yaml file:
...
dependencies:
...
loading_animations: "^2.1.0"
...
Then import the file to your project:
import 'package:loading_animations/loading_animations.dart';
How to use
Choose a loading animation from the list:
Flipping
LoadingFlipping.circle()LoadingFlipping.square()
Rotating
LoadingRotating.square()
Double Flipping
LoadingDoubleFlipping.circle()LoadingDoubleFlipping.square()
Bouncing Grid
LoadingBouncingGrid.circle()LoadingBouncingGrid.square()
Filling
LoadingFilling.square()
Fading Line
LoadingFadingLine.circle()LoadingFadingLine.square()
Bouncing Line
LoadingBouncingLine.circle()LoadingBouncingLine.square()
Jumping Line
LoadingJumpingLine.circle()LoadingJumpingLine.square()
Bumping Line
LoadingBumpingLine.circle()LoadingBumpingLine.square()
Then add the following code:
LoadingFlipping.circle(
color: Colors.blue,
);
Or you can customize it a bit:
LoadingFlipping.square(
borderColor: Colors.cyan,
size: 30.0,
);
Or customize it even more!
LoadingFlipping.circle(
borderColor: Colors.cyan,
borderSize: 3.0,
size: 30.0,
backgroundColor: Colors.cyanAccent,
duration: Duration(milliseconds: 500),
);
For more customization, please look inside the loading animation files.
Note: all the animations come ready to go just by calling LoadingDoubleFlipping.square(), for example.
Many basic animations contain .circle() and .square() variations by default.
Examples
Note: the following gifs are not yet updated to reflect version 2.1.0
For a more true experience of the animations and its variations, download the example project and run using flutter run --profile.
LoadingFlipCircle()

LoadingRotatingSquare()

LoadingFlipBox()

LoadingBouncingGrid()

3. LoadingIndicator ( loading_indicator )
Animation types
| Type | Type | Type | Type |
|---|---|---|---|
| 1. ballPulse | 2. ballGridPulse | 3. ballClipRotate | 4. squareSpin |
| 5. ballClipRotatePulse | 6. ballClipRotateMultiple | 7. ballPulseRise | 8. ballRotate |
| 9. cubeTransition | 10. ballZigZag | 11. ballZigZagDeflect | 12. ballTrianglePath |
| 13. ballScale | 14. lineScale | 15. lineScaleParty | 16. ballScaleMultiple |
| 17. ballPulseSync | 18. ballBeat | 19. lineScalePulseOut | 20. lineScalePulseOutRapid |
| 21. ballScaleRipple | 22. ballScaleRippleMultiple | 23. ballSpinFadeLoader | 24. lineSpinFadeLoader |
| 25. triangleSkewSpin | 26. pacman | 27. ballGridBeat | 28. semiCircleSpin |
| 29. ballRotateChase | 30. orbit | 31. audioEqualizer | 32. circleStrokeSpin |

4. Loading GIFs ( loading_gifs )
Loading GIFs is a collection of high fidelity loading animations in GIF format. Included are Android "Material Design" and iOS "Cupertino" default loading indicators.

Import this library into your project:
loading_gifs: ^latest_version
Use cupertinoActivityIndicator or circularProgressIndicator where ever a loading image is needed.
FadeInImage.assetNetwork(placeholder: cupertinoActivityIndicator, image: "image.png");
That's it!
Usage Tips
Size
This library is optimized for size so it only includes the base asset sizes. Change the size of the loading spinners using scale and placeholderScale.
FadeInImage.assetNetwork(placeholder: cupertinoActivityIndicator, image: "image.png", placeholderScale: 5);
Image.asset(circularProgressIndicator, scale: 10);
Dynamic Images
When loading images whose dimensions are unknown ahead of time, use cupertinoActivityIndicatorSmall instead of cupertinoActivityIndicator. cupertinoActivityIndicatorSmall is a min height variant of cupertinoActivityIndicator which allows Flutter to correctly expand the loaded image into the layout.
The small variant should be used when loading a list of images or compositing an image from multiple images.
ListView(
children: <Widget>[
FadeInImage.assetNetwork(
placeholder: cupertinoActivityIndicatorSmall,
image: "image_1.png"),
FadeInImage.assetNetwork(
placeholder: cupertinoActivityIndicatorSmall,
image: "image_2.png"),
FadeInImage.assetNetwork(
placeholder: cupertinoActivityIndicatorSmall,
image: "image_3.png"),
],
)
Empty Placeholder
FadeInImage requires a valid placeholder image to avoid "Asset not found" errors. Use placeholderEmpty, a 1x1 pixel transparent PNG, when an empty placeholder is needed.
FadeInImage.assetNetwork(placeholder: placeholderEmpty, image: "image.png");5. loading_overlay
A simple widget wrapper to enable modal progress HUD (a modal progress indicator, HUD = Heads Up Display).
A fork of mobile_progress_hud Inspired by this article.
Demo

See example for details
Usage
Add the package to your pubspec.yml file.
dependencies:
loading_overlay: ^0.2.1
Next, import the library into your widget.
import 'package:loading_overlay/loading_overlay.dart';
Now, all you have to do is simply wrap your widget as a child of ModalProgressHUD, typically a form, together with a boolean that is maintained in local state.
...
bool _saving = false
...
@override
Widget build(BuildContext context) {
return Scaffold(
body: LoadingOverlay(child: Container(
Form(...)
), isLoading: _saving),
);
}
Options
The current parameters are customizable in the constructor
LoadingOverlay({
@required this.isLoading,
@required this.child,
this.opacity = 0.5,
this.progressIndicator = const CircularProgressIndicator(),
this.color,
});6. rounded_loading_button

Installation
Add this to your pubspec.yaml:
dependencies:
rounded_loading_button: ^1.0.0
Usage
Import
import 'package:rounded_loading_button/rounded_loading_button.dart';
Simple Implementation
final RoundedLoadingButtonController _btnController = new RoundedLoadingButtonController();
void _doSomething() async {
Timer(Duration(seconds: 3), () {
_btnController.success();
});
}
RoundedLoadingButton(
child: Text('Tap me!', style: TextStyle(color: Colors.white)),
controller: _btnController,
onPressed: _doSomething,
)
0 Comments
Welcome! Please Comment Without Any Hesitation.
Thank You