Deklaratīva navigācija un overlayi Flutter.
Pārvaldiet Navigator 2.0 lapas un ekrāna lokālos overlayus bez Navigator.push/pop vai showDialog.
Lapas ir dati
PageEntry glabā tikai metadatus. UI izveido jūsu resolveris.
Ekrāna lokālie overlayi
Dialogi un bottom sheet tiek ierobežoti katrā ekrānā bez globāla stāvokļa.
Neatkarīgs no stāvokļa
Lietojiet setState, Riverpod, Bloc vai Provider. Nav nepieciešamas atkarības.
Pirmie soļi
Instalējiet declarative_nav un renderējiet lapas ar resolver callback.
Instalēšana
flutter pub add declarative_nav
Lietošanas ceļvedis
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,
);
}
}
Svarīga piezīme
Šī pakete izvairās no Navigator.push/pop un showDialog izsaukumiem. Vadiet navigāciju un overlayus no stāvokļa.
Iepriekšējais
PārskatsNākamais
Instalēšana