Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.8.2

route_observer_mixin

RouteObserveMixin bietet einfachen Zugriff auf didPush/didPop/didPushNext/didPopNext.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
5660
Likes
20
Pub-Punkte
160

Paket installieren

flutter pub add route_observer_mixin

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

RouteObserveMixin ist ein Flutter-Hilfsmixin, das die Behandlung von Routing-Lebenszyklusereignissen wie didPush, didPop, didPushNext und didPopNext vereinfacht. Es ermöglicht Widgets, auf Navigationsänderungen zu reagieren, ohne Routen manuell verwalten oder globale Beobachter verwenden zu müssen. Ideal für Zustandsverwaltung und Benutzeroberflächenaktualisierungen, die mit dem Navigationsfluss verbunden sind, vereinfacht es Interaktionen in komplexen Routing-Szenarien über mehrere Plattformen hinweg.

Anwendungsfälle

  • Behandlung von Navigationszustandsänderungen
  • UI bei Routenwechseln aktualisieren
  • Verwaltung von Zuständen während Push-/Pop-Ereignisse
  • Daten synchronisieren mit Routenänderungen
  • Benutzerdefinierte Navigationsverhalten implementieren

Hauptmerkmale

  • Einfache Integration mit bestehenden Widgets
  • Automatische Lifecycle-Ereignisrückrufe
  • Unterstützt alle wichtigen Flutter-Plattformen
  • Minimale Boilerplate-Code
  • Klare Trennung der Navigationslogik

Geeignet für

  • Entwickler, die komplexe Navigationsflüsse verwenden
  • Zustandsverwaltung mit Routenbewusstsein
  • Plattformübergreifende Flutter-Apps
  • Widgets, die einen Navigationskontext benötigen

Hinweise

  • Mischung in Widget-Klassen erforderlich
  • Beschränkt auf Routen-Lebenszyklusereignisse
  • Ersetzt keine vollständige Navigationsverwaltung
  • Am besten mit Zustandswidgets verwenden
  • Nicht geeignet für einfache Navigations-Szenarien

Original-README

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

route_observer_mixin

Gif

RouteObserveMixin provides easy access to didPush/didPop/didPushNext/didPopNext.

Usage

1. Wrap MaterialApp with RouteObserverProvider.
void main() {
  runApp(
    MultiProvider(
      providers: [
        // 1. Wrap MaterialApp with RouteObserverProvider.
        RouteObserverProvider(),
        ChangeNotifierProvider(create: (context) => Logger())
      ],
      child: const App(),
    ),
  );

  // Of course, this is also ok.
  // I demonstrated that [MultiProvider] can be used for RouteObserverProvider👍

  /*
  runApp(
    RouteObserverProvider(
      child: App(),
    ),
  );
  */
}
2. Pass RouteObserverProvider.of(context) to navigatorObservers.
class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 2. Pass RouteObserverProvider.of(context) to navigatorObservers.
      navigatorObservers: [RouteObserverProvider.of(context)],
      home: const APage(),
    );
  }
}
3. Add with RouteAware, RouteObserverMixin to State and override RouteAware methods.
class APage extends StatefulWidget {
  const APage({Key key}) : super(key: key);

  @override
  _APageState createState() => _APageState();
}

// 3. Add `with RouteAware, RouteObserverMixin` to State and override RouteAware methods.
class _APageState extends State<APage> with RouteAware, RouteObserverMixin {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('A Page'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            Navigator.of(context).push<void>(
              MaterialPageRoute(
                builder: (context) => const BPage(),
              ),
            );
          },
          child: const Text('B Page'),
        ),
      ),
    );
  }

  /// Called when the top route has been popped off, and the current route
  /// shows up.
  @override
  void didPopNext() { }

  /// Called when the current route has been pushed.
  @override
  void didPush() { }

  /// Called when the current route has been popped off.
  @override
  void didPop() { }

  /// Called when a new route has been pushed, and the current route is no
  /// longer visible.
  @override
  void didPushNext() { }
}

Example

  • https://github.com/mono0926/route_observer_mixin/tree/master/example

Kategorien

Abhängigkeiten

Abhängigkeiten 4 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.