Deklaratiivne navigeerimine ja overlay'd Flutteri jaoks.

Juhi Navigator 2.0 lehti ja ekraanipõhiseid overlay'sid ilma Navigator.push/pop või showDialog.

Lehed on andmed

PageEntry salvestab ainult metaandmed. UI luuakse sinu resolveri poolt.

Ekraanipõhised overlay'd

Dialoogid ja bottom sheet'id on iga ekraani piires ilma globaalse olekuta.

Olekust sõltumatu

Kasuta setState, Riverpod, Bloc või Provider. Sõltuvusi pole vaja.

Esimesed sammud

Paigalda declarative_nav ja renderda lehed resolveri callback'iga.

Paigaldus

flutter pub add declarative_nav

Kasutusjuhend

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,
    );
  }
}
Oluline märkus

See pakett väldib Navigator.push/pop ja showDialogi väljakutseid. Juhi navigeerimist ja overlay'sid oleku kaudu.

Eelmine

Ülevaade

Järgmine

Paigaldus