Plugin.Maui.LoadingHud
1.0.0
dotnet add package Plugin.Maui.LoadingHud --version 1.0.0
NuGet\Install-Package Plugin.Maui.LoadingHud -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Plugin.Maui.LoadingHud" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Plugin.Maui.LoadingHud" Version="1.0.0" />
<PackageReference Include="Plugin.Maui.LoadingHud" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Plugin.Maui.LoadingHud --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Plugin.Maui.LoadingHud, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Plugin.Maui.LoadingHud@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Plugin.Maui.LoadingHud&version=1.0.0
#tool nuget:?package=Plugin.Maui.LoadingHud&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Plugin.Maui.LoadingHud
A tiny loading overlay for .NET MAUI (Android + iOS). Show a Lottie, an image or a spinner, with optional text.
using (LoadingHud.Show("Loading..."))
await api.GetDataAsync();
Demo
| Android | iOS |
|---|---|
![]() |
![]() |
Why use it
- No page events: it's a native overlay, so
OnAppearing/OnDisappearingdon't fire and there's no navigation to deadlock. - No overlapping loaders: nested
Show()calls are reference counted, and the loader hides when the last one is disposed. - Configure once: set defaults in
MauiProgramand override per call only when needed. - Lightweight: views are disposed on hide, so nothing stays in memory.
Features
- Lottie, image or spinner (spinner is the automatic fallback, including when a file is missing)
- Global defaults: text, Lottie, image, colors, sizes, spacing
- Per-call override of text, Lottie and image
- Word-wrapped text, thread-safe, blocks touches while loading
Install
dotnet add package Plugin.Maui.LoadingHud
Setup (MauiProgram.cs)
All options are optional. With none set you get a white spinner.
builder.UseLoadingHud(o =>
{
o.Text = "Please wait..."; // default text
o.Lottie = "loader.json"; // Resources/Raw
o.Image = "logo.png"; // Resources/Images (used if no Lottie)
o.IndicatorColor = Colors.White;
o.BackgroundColor = Color.FromArgb("#80000000");
o.OverlayColor = Color.FromArgb("#66000000");
o.TextColor = Colors.White;
o.IndicatorSize = 40;
o.LottieSize = 100;
o.ImageSize = 60;
o.Spacing = 8; // gap between loader and text
});
Usage
using (LoadingHud.Show()) { ... } // defaults
using (LoadingHud.Show("Saving...")) { ... } // custom text
using (LoadingHud.Show("")) { ... } // no text
using (LoadingHud.Show("Uploading", lottie: "upload.json")) { ... }
using (LoadingHud.Show(image: "logo.png")) { ... }
LoadingHud.Hide(); // force-hide all
Show(string? text = null, string? lottie = null, string? image = null)
Loader priority: per-call Lottie, per-call image, default Lottie, default image, spinner.
Text: per-call text, otherwise o.Text. Pass "" for none.
Sample
private async void Loader_without_Text_Clicked(object s, EventArgs e)
{
using (LoadingHud.Show("")) await Task.Delay(3000);
}
private async void Loader_with_Text_Clicked(object s, EventArgs e)
{
using (LoadingHud.Show("Loading...")) await Task.Delay(3000);
}
private async void Loader_with_Lottie_Clicked(object s, EventArgs e)
{
using (LoadingHud.Show("Loading...", lottie: "loadinglottie.json")) await Task.Delay(3000);
}
private async void Loader_with_Image_Clicked(object s, EventArgs e)
{
using (LoadingHud.Show("Loading...", image: "dotnet_bot.png")) await Task.Delay(3000);
}
<VerticalStackLayout Padding="30,0" Spacing="25">
<Button Text="Loader without Text" Clicked="Loader_without_Text_Clicked"/>
<Button Text="Loader with Text" Clicked="Loader_with_Text_Clicked"/>
<Button Text="Loader with Lottie" Clicked="Loader_with_Lottie_Clicked"/>
<Button Text="Loader with Image" Clicked="Loader_with_Image_Clicked"/>
</VerticalStackLayout>
Options
| Option | Default | Description |
|---|---|---|
Text |
none | Default message |
Lottie |
none | Lottie JSON name (Resources/Raw) |
Image |
none | Image name (Resources/Images) |
IndicatorColor |
White | Spinner color |
BackgroundColor |
#80000000 |
Box behind the loader |
OverlayColor |
#66000000 |
Dim layer over the screen |
TextColor |
White | Text color |
IndicatorSize |
40 | Spinner size |
LottieSize |
100 | Lottie size |
ImageSize |
60 | Image size |
Spacing |
8 | Gap between loader and text |
Notes
- Android image names must be lowercase (
logo.png). - Platforms: Android and iOS. Other targets compile but show nothing.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0-android37.0 is compatible. net11.0-ios26.5 is compatible. net11.0-maccatalyst26.5 is compatible. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net11.0-android37.0
- Microsoft.Maui.Controls (>= 11.0.0-rc.1.26451.6)
- Xamarin.AirBnB.Android.Lottie (>= 6.7.1.2)
-
net11.0-ios26.5
- Microsoft.Maui.Controls (>= 11.0.0-rc.1.26451.6)
- SwiftBindings.Lottie (>= 4.6.9)
-
net11.0-maccatalyst26.5
- Microsoft.Maui.Controls (>= 11.0.0-rc.1.26451.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 54 | 10/18/2026 |

