Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.1.0

flutter_lazy_indexed_stack

Ein Flutter-Paket, das einen `IndexedStack` verfügbar macht, der lazy geladen werden kann.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
6650
Likes
80
Pub-Punkte
160

Paket installieren

flutter pub add flutter_lazy_indexed_stack

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Paket, das den eingebauten IndexedStack erweitert, um die Lazy-Loading seiner Kinder zu unterstützen. Es stellt sicher, dass nur das aktuell sichtbare Widget erstellt und gerendert wird, was die Leistung bei großen Stapeln mit kostspieligen Widgets verbessert. Ideal für Szenarien, in denen Speichereffizienz und bedarfsorientiertes Rendern entscheidend sind. Das Paket behält dieselbe API wie IndexedStack bei, fügt jedoch eine verzögerte Initialisierung hinzu, sodass die Integration in bestehende Projekte nahtlos erfolgen kann.

Anwendungsfälle

  • Große tabbige Schnittstellen
  • Speicher-effizientes Navigieren
  • Dynamische Inhaltsumschaltung
  • On-Demand-Widget-Rendern
  • Komplexe Benutzeroberflächen mit schweren Komponenten

Hauptmerkmale

  • Lazy Loading von Stack-Kinder
  • Derselbe API wie IndexedStack
  • Verbesserte Leistung
  • Verringerte Speicherbelegung
  • Nahtlose Integration

Geeignet für

  • Entwickler optimieren die Benutzeroberflächenleistung
  • Apps mit vielen Tabs oder Bildschirmen
  • Projekte, die IndexedStack mit schweren Widgets verwenden
  • Paginierungsintensive Anwendungen
  • Hochinteraktive Dashboards

Hinweise

  • Nicht geeignet für unmittelbare Kindrenderungsanforderungen
  • Beschränkt auf stapelbasierte Layouts
  • Kann eine sorgfältige Zustandsverwaltung erfordern
  • Am besten mit stabilen Indexwerten verwenden
  • Unterstützt standardmäßig keine animierten Übergänge

Original-README

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

Lazy Indexed Stack 😴🥞

pub ci License: MIT style: very good analysis

A Flutter package that exposes an IndexedStack that can be lazily loaded.

IndexedStack is a widget that shows its children one at a time, preserving the state of all the children. But it renders all the children at once.

With LazyIndexedStack, you can load the children lazily, and only when they are needed. This comes in handy if you have a lot of children, and you don't want to load them all at once or if you have a child that loads content asynchronously.

Usage

The LazyIndexedStack API is the same as IndexedStack. A basic implementation requires two parameters:

  • A List<Widget> of children that are going to be lazy loaded under the hood.
  • An int index that indicates which child is going to be shown.

Example

class HomePage extends StatefulWidget {
  const HomePage({super.key, required this.title});

  final String title;

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int index = 0;

  void changeIndex(int newIndex) => setState(() => index = newIndex);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Column(
        children: [
          Expanded(
            child: LazyIndexedStack(
              index: index,
              children: List.generate(3, (i) => Text('$i')),
            ),
          ),
          BottomNavigationBar(
            currentIndex: index,
            onTap: changeIndex,
            items: const [
              BottomNavigationBarItem(
                icon: Icon(Icons.filter_1),
                label: '1',
              ),
              BottomNavigationBarItem(
                icon: Icon(Icons.filter_2),
                label: '2',
              ),
              BottomNavigationBarItem(
                icon: Icon(Icons.filter_3),
                label: '3',
              ),
            ],
          ),
        ],
      ),
    );
  }
}

Refer to the example to see the usage of LazyIndexedStack.

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden