Flutter üçün deklarativ naviqasiya və örtüklər.

Navigator.push/pop və ya showDialog olmadan Navigator 2.0 səhifələrini və ekran-daxili örtükləri idarə edin.

Səhifələr məlumatdır

PageEntry yalnız metadata saxlayır. UI resolveriniz tərəfindən yaradılır.

Ekran-daxili örtüklər

Dialoqlar və alt vərəqlər hər ekran üçün məhdudlaşdırılır, qlobal vəziyyət yoxdur.

Vəziyyətdən asılı deyil

setState, Riverpod, Bloc və ya Provider istifadə edin. Heç bir asılılıq tələb olunmur.

İlk addımlar

declarative_nav quraşdırın və səhifələri resolver callback ilə render edin.

Quraşdırma

flutter pub add declarative_nav

İstifadə bələdçisi

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,
    );
  }
}
Vacib qeyd

Bu paket Navigator.push/pop və showDialog çağırışlarından qaçır. Naviqasiya və örtükləri vəziyyətdən idarə edin.