Uabiri wa matamko na overlay kwa Flutter

Dhibiti kurasa za Navigator 2.0 na overlay ya kiwango cha skrini bila kutumia Navigator.push/pop au showDialog.

Kurasa ni data

PageEntry huhifadhi metadata pekee. UI huundwa na resolver yako.

Overlay za eneo la skrini

Dialog na bottom sheet zimewekewa mipaka kwa kila skrini bila state ya kimataifa.

Isiyofungamana na state

Tumia setState, Riverpod, Bloc au Provider. Hakuna utegemezi unaohitajika.

Hatua za kwanza

Sakinisha declarative_nav na onyesha kurasa kupitia callback ya resolver.

Usakinishaji

Mwongozo wa Matumizi

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,
    );
  }
}
Dokezo Muhimu

Kifurushi hiki kinaepuka Navigator.push/pop na miito ya showDialog. Dhibiti uabiri na overlay kutoka kwenye state.

Iliyotangulia

Muhtasari

Inayofuata

Usakinishaji