Navigator 2.0-ni vəziyyətdən idarə edin.
declarative_nav sizə səhifələri və örtükləri adi vəziyyət kimi idarə etməyə imkan verir; Navigator.push/pop və ya showDialog-u birbaşa çağırmağa ehtiyac yoxdur.
Səhifələr məlumat kimi
PageEntry Widget tiplərini saxlamır. UI resolver callback-i ilə qurulur.
Ekran-daxili örtüklər
Dialoqlar və vərəqlər ekran üzrə məhdudlaşdırıla bilər, lazım olduqda tab-daxili vəziyyət də daxil olmaqla.
Vəziyyət idarəsindən asılı deyil
setState, Riverpod, Bloc, Provider və ya başqa istənilən vəziyyət qatı ilə işləyir.
Başlanğıc axını
Paketi quraşdırın, sonra səhifələri və örtükləri açıq vəziyyətə keçirin.
Quraşdırma
İlkin quruluş
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 build(BuildContext context) {
return DeclarativePagesNavigator(
pages: _pages,
buildPage: _buildPage,
onPopTop: _popTop,
canPopTop: () => _overlay == null,
);
}
}
Əsas qayda
Eyni stack üçün imperativ push/pop ilə deklarativ List<PageEntry>-ni qarışdırmayın. Tək həqiqət mənbəyini saxlamaq naviqasiya sürüşməsinin qarşısını alır.
Əvvəlki
Açıq MənbəNövbəti
Quraşdırma