Flutter için bildirime dayalı gezinme ve overlay'ler.
Navigator.push/pop veya showDialog olmadan Navigator 2.0 sayfalarını ve ekran yerel overlay'leri yönetin.
Sayfalar veridir
PageEntry yalnızca metaveri saklar. UI, resolver'ınız tarafından oluşturulur.
Ekran yerel overlay'ler
Diyaloglar ve bottom sheet'ler küresel durum olmadan ekrana göre sınırlandırılır.
Durumdan bağımsız
setState, Riverpod, Bloc veya Provider kullanın. Bağımlılık gerekmez.
İlk adımlar
declarative_nav'ı kurun ve sayfaları resolver callback ile render edin.
Kurulum
flutter pub add declarative_nav
Kullanım Kılavuzu
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,
);
}
}
Önemli Not
Bu paket Navigator.push/pop ve showDialog çağrılarını önler. Gezinme ve overlay'leri durumdan yönetin.
Önceki
Genel BakışSonraki
Kurulum