Deklarative Navigation und Overlays für Flutter.
Steuern Sie Navigator-2.0-Seiten und bildschirmlokale Overlays ohne Navigator.push/pop oder showDialog.
Seiten sind Daten
PageEntry speichert nur Metadaten. Das UI wird durch Ihren Resolver erstellt.
Bildschirmlokale Overlays
Dialoge und Bottom Sheets sind pro Bildschirm begrenzt, ohne globalen Zustand.
Zustandsagnostisch
Nutzen Sie setState, Riverpod, Bloc oder Provider. Keine Abhängigkeiten erforderlich.
Erste Schritte
Installieren Sie declarative_nav und rendern Sie Seiten über einen Resolver-Callback.
Installation
flutter pub add declarative_nav
Nutzungshandbuch
app_root.dart
class AppRoot extends StatefulWidget {
const AppRoot({super.key});
@override
State<AppRoot> createState() => _AppRootState();
}
class _AppRootState extends State<AppRoot> {
OverlayRequest? _overlay;
late List<PageEntry> _pages;
@override
void initState() {
super.initState();
_pages = const [PageEntry(key: 'home', name: '/home')];
}
Widget buildPage(BuildContext context, PageEntry page) {
return HomePage(onOpenDialog: _openDialog);
}
@override
Widget build(BuildContext context) {
return DeclarativePagesNavigator(
pages: _pages,
buildPage: buildPage,
onPopTop: _popTop,
canPopTop: () => _overlay == null,
);
}
}
Wichtiger Hinweis
Dieses Paket vermeidet Navigator.push/pop und showDialog-Aufrufe. Steuern Sie Navigation und Overlays stattdessen über den Zustand.
Zurück
ÜbersichtWeiter
Installation