Package selection guidance compiled from public package information, community data, and project usage.
A clean and lightweight progress HUD for Flutter apps, inspired by SVProgressHUD. It provides a simple, elegant way to display loading indicators, success messages, and errors without disrupting the user experience. Designed for Android and iOS, it integrates seamlessly into existing Flutter projects with minimal setup. The package offers customizable appearance and behavior while maintaining performance and responsiveness.
SVProgressHUD is created as a singleton (i.e. it doesn't need to be explicitly allocated and instantiated; you directly call SVProgressHUD.method()).
Use SVProgressHUD wisely! Only use it if you absolutely need to perform a task before taking the user forward. Bad use case examples: pull to refresh, infinite scrolling, sending message.
Using SVProgressHUD in your app will usually look as simple as this:
If you'd like to stack HUDs, you can balance out every show call using:
+ (void)popActivity;
The HUD will get dismissed once the popActivity calls will match the number of show calls.
Or show a confirmation glyph before before getting dismissed a little bit later. The display time depends on minimumDismissTimeInterval and the length of the given string.
SVProgressHUD.showInfo(status: 'Useful Information.');
SVProgressHUD.showSuccess(status: 'Great Success!');
SVProgressHUD.showError(status: 'Failed with Error');
Customization
SVProgressHUD can be customized via the following methods:
voidsetDefaultStyle(SVProgressHUDStyle style); // default is SVProgressHUDStyle.LightvoidsetDefaultMaskType(SVProgressHUDMaskType maskType); // default is SVProgressHUDMaskType.NonevoidsetDefaultAnimationType(SVProgressHUDAnimationType type); // default is SVProgressHUDAnimationType.FlatvoidsetMinimumSize(Size minimumSize); // default is Size.zero, can be used to avoid resizingvoidsetRingThickness(num width); // default is 2 ptvoidsetRingRadiu(num radius); // default is 18 ptvoidsetRingNoTextRadius(num radius); // default is 24 ptvoidsetCornerRadius(num cornerRadius); // default is 14 ptvoidsetBorderColor(Color color); // default is nullvoidsetBorderWidth(num width); // default is 0voidsetForegroundColor(Color color); // default is Colors.black, only used for SVProgressHUDStyle.Custom// void setForegroundImageColor(Color color); // default is the same as foregroundColorvoidsetBackgroundColor(Color color); // default is Colors.white, only used for SVProgressHUDStyle.CustomvoidsetBackgroundLayerColor(Color color); // default is [Color colorWithWhite:0 alpha:0.4], only used for SVProgressHUDMaskType.CustomvoidsetImageViewSize(Size size); // default is 28x28 pt// void setShouldTintImages(bool shouldTintImages); // default is true// void setInfoImage(UIImage image); // default is the bundled info image provided by Freepik// void setSuccessImage(UIImage image); // default is bundled success image from Freepik// void setErrorImage(UIImage image); // default is bundled error image from Freepik// void setGraceTimeInterval(num interval); // default is 0 secondsvoidsetMinimumDismissTimeInterval(num interval); // default is 5.0 seconds// void setMaximumDismissTimeInterval(num interval); // default is CGFLOAT_MAXvoidsetFadeInAnimationDuration(num duration); // default is 0.15 secondsvoidsetFadeOutAnimationDuration(num duration); // default is 0.15 secondsvoidsetHapticsEnabled(bool hapticsEnabled); // default is false