Декларативна навігація та оверлеї для Flutter.
Керуйте сторінками Navigator 2.0 і локальними оверлеями без Navigator.push/pop або showDialog.
Сторінки — це дані
PageEntry зберігає лише метадані. UI створюється вашим резолвером.
Локальні оверлеї
Діалоги та bottom sheet обмежені екраном без глобального стану.
Незалежно від стану
Використовуйте setState, Riverpod, Bloc або Provider. Залежності не потрібні.
Перші кроки
Встановіть declarative_nav і рендерьте сторінки через callback резолвера.
Встановлення
Посібник з використання
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,
);
}
}
Важлива примітка
Цей пакет уникає Navigator.push/pop і викликів showDialog. Керуйте навігацією та оверлеями зі стану.
Попередня
ОглядНаступна
Встановлення