Deklarativ navigering och overlays för Flutter.
Styr Navigator 2.0-sidor och skärmlokala overlays utan Navigator.push/pop eller showDialog.
Sidor är data
PageEntry lagrar bara metadata. UI skapas av din resolver.
Skärmlokala overlays
Dialoger och bottom sheets är begränsade per skärm utan globalt tillstånd.
Tillståndsagnostisk
Använd setState, Riverpod, Bloc eller Provider. Inga beroenden krävs.
Första stegen
Installera declarative_nav och rendera sidor via en resolver-callback.
Installation
flutter pub add declarative_nav
Användarguide
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,
);
}
}
Viktig notering
Det här paketet undviker Navigator.push/pop och showDialog-anrop. Styr navigering och overlays från tillståndet.
Föregående
ÖversiktNästa
Installation