A modal progress indicator widget (HUD = heads-up display). Wrap around another widget to block access to widget during an async call. Also accepts a custom spinner.
Package selection guidance compiled from public package information, community data, and project usage.
A Flutter package that provides a modal progress indicator (HUD) to display a loading overlay on top of any widget. It blocks user interaction during asynchronous operations, such as API calls or data processing, ensuring a smooth UX. The HUD supports a customizable spinner, allowing developers to use their own loading animation. Ideal for preventing accidental taps while waiting for results. Works seamlessly with widgets like buttons or forms.
Use cases
Blocking UI during async operations
Showing loading state in forms
Preventing taps during data fetch
Enhancing UX with visual feedback
Customizing loading indicators
Key features
Modal overlay blocking interactions
Supports custom spinners
Simple integration with existing widgets
Non-intrusive loading display
Works with any widget tree
Suitable for
Developers needing quick loading overlays
Apps with frequent async operations
UIs requiring clear loading states
Teams prioritizing UX consistency
Projects using minimal boilerplate
Considerations
Does not handle error states
No built-in retry mechanism
Spinner customization requires additional setup
Limited styling options beyond basic
Not suitable for complex loading workflows
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
modal_progress_hud
A simple widget wrapper to enable modal progress HUD (a modal progress indicator, HUD = Heads Up Display)
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.
Update: See this article on Medium about async form validation
See the example application source
for a complete sample app using the modal progress HUD. Included in the
example is a method for using a form's validators while making async
calls (see flutter/issues/9688 for details).
Issues and feedback
Please file issues
to send feedback or report a bug. Thank you!