Flutter साठी घोषणात्मक नेव्हिगेशन आणि ओव्हरले.

Navigator.push/pop किंवा showDialog शिवाय Navigator 2.0 पृष्ठे आणि स्क्रीन-लोकल ओव्हरले नियंत्रित करा.

पृष्ठे म्हणजे डेटा

PageEntry फक्त मेटाडेटा ठेवते. UI तुमच्या resolver ने तयार होतो.

स्क्रीन-लोकल ओव्हरले

डायलॉग आणि bottom sheet प्रत्येक स्क्रीनवर मर्यादित असतात, ग्लोबल स्टेटशिवाय.

स्टेट-अ‍ॅग्नॉस्टिक

setState, Riverpod, Bloc किंवा Provider वापरा. कोणतेही dependency आवश्यक नाही.

पहिले पावले

declarative_nav इंस्टॉल करा आणि resolver callback ने पृष्ठे रेंडर करा.

इंस्टॉलेशन

flutter pub add declarative_nav

वापर मार्गदर्शिका

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,
    );
  }
}
महत्त्वाची नोंद

हा पॅकेज Navigator.push/pop आणि showDialog कॉल टाळतो. स्टेटमधून नेव्हिगेशन व ओव्हरले नियंत्रित करा.