Navigasi deklaratif dan overlay untuk Flutter.
Kawal halaman Navigator 2.0 dan overlay setempat skrin tanpa Navigator.push/pop atau showDialog.
Halaman ialah Data
PageEntry hanya menyimpan metadata. UI dibina oleh resolver anda.
Overlay setempat skrin
Dialog dan bottom sheet dihadkan bagi setiap skrin tanpa keadaan global.
Tidak bergantung pada keadaan
Gunakan setState, Riverpod, Bloc atau Provider. Tiada kebergantungan diperlukan.
Langkah Pertama
Pasang declarative_nav dan render halaman melalui callback resolver.
Pemasangan
flutter pub add declarative_nav
Panduan Penggunaan
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,
);
}
}
Nota Penting
Pakej ini mengelakkan Navigator.push/pop dan panggilan showDialog. Kawal navigasi dan overlay dari keadaan.
Sebelumnya
Gambaran keseluruhanSeterusnya
Pemasangan