Kategorien, Pakete und Repositories suchen

Cover von shimmer
Paketdetailsv4.0.0

shimmer

Ein Paket bietet eine einfache Möglichkeit, einen Shimmer-Effekt in einem Flutter-Projekt hinzuzufügen

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
1,8 Mio.
Likes
5460
Pub-Punkte
160

Paket installieren

flutter pub add shimmer

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Shimmer ist ein Flutter-Paket, das die Hinzufügung von Shimmer-Ladeeffekten zu Benutzeroberflächenkomponenten vereinfacht und eine glatte, animierte Platzhalterdarstellung erzeugt. Es eignet sich ideal zum Nachahmen von Ladezuständen in Listen, Karten oder Bildern und verbessert die Benutzererfahrung während des Datenabrufs. Das Paket unterstützt alle wichtigen Plattformen wie Android, iOS, Web, macOS, Windows und Linux und sorgt für konsistentes Verhalten über Geräte hinweg. Mit minimalem Setup können Entwickler visuell ansprechende Ladeindikatoren schnell implementieren, ohne komplexe Animationen schreiben zu müssen.

Anwendungsfälle

  • Ladeplätzen in Listen
  • Animierte Kartenplatzhalter
  • Bildlade-Skelette
  • Verbesserung der Benutzererfahrung während des Datenabrufs
  • Dynamische Inhaltsvorschauen

Hauptmerkmale

  • Einfache API-Integration
  • Plattformübergreifende Unterstützung
  • Anpassbare Schimmerfarbe
  • Glatte Animationswirkung
  • Leicht und leistungsstark

Geeignet für

  • UI-Designer, die visuelle Perfektion suchen
  • Entwickler, die dynamische Inhaltsbildschirme erstellen
  • Apps mit häufigem Datenladen
  • Interaktive Schnittstellen prototypisch gestalten
  • Verbesserung der wahrgenommenen Leistung

Hinweise

  • Nicht geeignet für statischen Inhalt
  • Erfordert eine korrekte Platzierung innerhalb des Widgetbaums
  • Kann die Leistung beeinträchtigen, wenn übermäßig verwendet
  • Eingeschränkte Anpassung über die grundlegende Gestaltung hinaus
  • Am besten mit transparenten Hintergründen verwenden

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Shimmer

pub package unit test codecov

A lightweight Flutter widget that paints a moving highlight over placeholder UI. Typical uses are skeleton screens while data loads, and a sliding highlight on a call to action.

Install

dependencies:
  shimmer: ^4.0.0
  material_ui: ^1.0.1

shimmer 4.0 uses Flutter's standalone material_ui package (Flutter 3.44+). Apps that still import package:flutter/material.dart can wrap those subtrees in MaterialUiCompatibilityBridge.

import 'package:material_ui/material_ui.dart';
import 'package:shimmer/shimmer.dart';

Usage

Skeleton placeholder

Shimmer.fromColors is the usual constructor. Build the child from solid shapes (Container, Row, Column). The gradient replaces those colors; transparent pixels stay transparent.

Shimmer.fromColors(
  baseColor: Colors.grey.shade300,
  highlightColor: Colors.grey.shade100,
  child: Column(
    children: [
      Container(height: 200, color: Colors.white),
      const SizedBox(height: 16),
      Container(height: 12, color: Colors.white),
      const SizedBox(height: 8),
      Container(height: 12, width: 200, color: Colors.white),
    ],
  ),
);

Dark theme:

Shimmer.fromColors(
  baseColor: Colors.grey.shade800,
  highlightColor: Colors.grey.shade600,
  child: placeholder,
);
Custom gradient

Use the default constructor when you need a RadialGradient, SweepGradient, or a LinearGradient that follows Theme.

Shimmer(
  gradient: LinearGradient(
    colors: [
      Theme.of(context).colorScheme.surfaceContainerHighest,
      Theme.of(context).colorScheme.surface,
      Theme.of(context).colorScheme.surfaceContainerHighest,
    ],
    stops: const [0.35, 0.5, 0.65],
  ),
  child: placeholder,
);
Direction, speed, and loops
Shimmer.fromColors(
  direction: ShimmerDirection.rtl,
  period: const Duration(milliseconds: 1200),
  loop: 0, // 0 = forever
  enabled: isLoading,
  baseColor: Colors.grey.shade300,
  highlightColor: Colors.grey.shade100,
  child: placeholder,
);
Parameter Default Role
child required Opaque area the highlight is blended onto
gradient required* Highlight colors (fromColors builds this for you)
direction ltr ltr, rtl, ttb, btt
period 1500ms Duration of one pass
loop 0 Passes before stopping; 0 repeats forever
enabled true false pauses the animation

*Required on Shimmer(...). Shimmer.fromColors takes baseColor and highlightColor instead.

Performance

  • Wrap a list of placeholders in one Shimmer, not one Shimmer per row.
  • Keep child simple and static. Fancy widgets (images, text with decoration, elevation) often look wrong because the shader replaces their colors.
  • Toggle enabled to false when loading finishes so the ticker stops.

Example

The example/ app shows a loading list and a “slide to unlock” highlight. From the repository root:

cd example && flutter run

How it works

Shimmer drives an AnimationController and paints a ShaderMaskLayer over the child (BlendMode.srcIn). The highlight rectangle is three times the child size so the band can travel fully across the widget.

Project internals, tests, and further optimization notes live in docs/overview.md and docs/optimization.md.

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Ranglisten