Shimmer.NET
1.1.1
dotnet add package Shimmer.NET --version 1.1.1
NuGet\Install-Package Shimmer.NET -Version 1.1.1
<PackageReference Include="Shimmer.NET" Version="1.1.1" />
<PackageVersion Include="Shimmer.NET" Version="1.1.1" />
<PackageReference Include="Shimmer.NET" />
paket add Shimmer.NET --version 1.1.1
#r "nuget: Shimmer.NET, 1.1.1"
#:package Shimmer.NET@1.1.1
#addin nuget:?package=Shimmer.NET&version=1.1.1
#tool nuget:?package=Shimmer.NET&version=1.1.1
Shimmer.NET 💎
High-Performance, Content-Aware Shimmer for .NET Android
Shimmer.NET is a 100% C# native Android library that brings premium loading indicators to your .NET applications. Say goodbye to heavy Java/Kotlin bindings and hello to a sleek, modern, and high-performance skeleton loading experience.
✨ Key Features
- 🛡️ PorterDuff Masking: Professional content-aware shimmering. The effect only highlights your text and shapes, not the background.
- 🔄 Perfectly Synchronized: The
ShimmerGroupcontainer allows multiple independent shimmers to sweep in unison. - 🚥 Automated State Management: Built-in
Loading,Content, andErrorstates with smooth cross-fade transitions. - 🏗️ Effortless Presets: Instant, code-behind skeleton generation for common UI patterns (Profile, Post, List).
- 🚀 Ultra-Fast Rendering: Hardware-accelerated drawing with optimized
ValueAnimatormanagement. - 🎨 Infinite Customization: Directional control (4 directions), shapes (Linear/Radial), repeat delays, and custom interpolators.
📦 Installation
<PackageReference Include="Shimmer.NET" Version="1.1.0" />
🚀 Quick Usage
Basic XML Configuration
<shimmer.net.widgets.ShimmerFrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:shimmer_is_loading="true"
app:shimmer_use_mask="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View android:layout_width="match_parent" android:layout_height="20dp" android:background="#DDD" />
<View android:layout_width="200dp" android:layout_height="16dp" android:background="#DDD" />
</LinearLayout>
</shimmer.net.widgets.ShimmerFrameLayout>
Synchronized Sweeping
Place multiple shimmers inside a ShimmerGroup for a perfectly unified loading experience:
<shimmer.net.widgets.ShimmerGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<shimmer.net.widgets.ShimmerFrameLayout ...>...</shimmer.net.widgets.ShimmerFrameLayout>
<shimmer.net.widgets.ShimmerFrameLayout ...>...</shimmer.net.widgets.ShimmerFrameLayout>
</shimmer.net.widgets.ShimmerGroup>
Instant Code Presets
// Effortless skeleton injection
var profileLoadingView = ShimmerPresets.CreateProfile(this);
parentLayout.AddView(profileLoadingView);
📜 License
Shimmer.NET is released under the MIT License.
Built with ❤️ by NkkinSoft for the .NET Android ecosystem.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0-android35.0 is compatible. net10.0-android was computed. net10.0-android36.0 is compatible. |
-
net10.0-android36.0
- Xamarin.AndroidX.RecyclerView (>= 1.4.0.5)
-
net9.0-android35.0
- Xamarin.AndroidX.RecyclerView (>= 1.4.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.