Pakete, Repositories und App-Kategorien suchen

Paketdetailsv2.3.0

implicitly_animated_list

Ein Flutter-Widget, das eine Liste implizit animiert, sobald sie mit neuen Elementen neu erstellt wird.

AndroidiOSmacOSWindowsLinux
30-Tage-Downloads
22.600
Likes
33
Pub-Punkte
150

Paket installieren

flutter pub add implicitly_animated_list

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Widget, das Listenitems automatisch animiert, wenn die Liste mit neuen Daten neu erstellt wird, wodurch manuelle Animationsverwaltung entfällt. Es verarbeitet Einfügungen, Löschungen und Aktualisierungen reibungslos mithilfe impliziter Animationen und ist daher ideal für dynamische Listen wie Chat-Oberflächen oder Aufgabenboards. Das Widget integriert sich nahtlos in Standard-Flutter-Listen und erfordert minimale Einrichtung. Es unterstützt alle wichtigen Plattformen und wurde für Einfachheit und Leistung optimiert.

Anwendungsfälle

  • Dynamische Listenaktualisierungen
  • Chat-Oberflächen mit Nachrichteneingängen
  • Aufgabenlistenverwaltung
  • Echtzeit-Datenfeeds
  • Animierte Elementübergänge

Hauptmerkmale

  • automatische Einfügeanimationen
  • Glatte Löschübergänge
  • Eingebaute Aktualisierungsverwaltung
  • Minimales Boilerplate
  • Plattformübergreifende Unterstützung

Geeignet für

  • Entwickler, die einfache Listenanimationen suchen
  • Apps mit häufig aktualisierten Listen
  • UIs, die visuelle Rückmeldung zu Änderungen erfordern
  • Anfänger lernen Flutter-Animationen
  • Projekte, die die Entwickler-Effizienz priorisieren

Hinweise

  • Eingeschränkte Anpassung von Animationskurven
  • Nicht ideal für komplexe benutzerdefinierte Animationen
  • Kann die Leistung bei sehr großen Listen beeinträchtigen
  • Erfordert sorgfältige Zustandsverwaltung, um Flimmern zu vermeiden
  • Am besten geeignet für mittelgroße Datensätze

Original-README

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

Often, your lists represent some kind of data.

You can just pass the original list data to the ImplicitlyAnimatedList as well as an itemBuilder for building a widget from one data point, and it'll animate whenever the data changes:

ImplicitlyAnimatedList(
  // When you change items of this list and hot reload, the list animates.
  itemData: [1, 2, 3, 4],
  itemBuilder: (_, number) => ListTile(title: Text('$number')),
),

It works with all classes and works well with StreamBuilder:

class User {
  const User({required this.firstName, required this.lastName});

  final String firstName;
  final String lastName;

  // The ImplicitlyAnimatedList uses the == operator to compare items.
  bool operator ==(Object other) => other is User
    && firstName == other.firstName
    && lastName == other.lastName;
}

...

StreamBuilder<List<User>>(
  stream: someSource.usersStream,
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return ...;
    }
    return ImplicitlyAnimatedList(
      itemData: snapshot.data,
      itemBuilder: (context, user) {
        return ListTile(title: Text('${user.firstName} ${user.lastName}'));
      }
    );
  }
)

Here's an example that generates random numbers and animates from one state to the next (notice it's only 10 fps because of being a GIF):

example showcase

In addition to ImplicitlyAnimatedList, there's also SliverImplicitlyAnimatedList for use in a CustomScrollView:

CustomScrollView(
  slivers: [
    SliverImplicitlyAnimatedList(
      itemData: myListOfItems,
      itemBuilder: (context, item) => ListTile(title: Text('$item')),
    ),
    // ...
  ],
),

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

  • list_diff^2.0.0

Quell-Repository

Projekte, die dieses Paket verwenden