Flutter માટે જાહેરકૃત નેવિગેશન અને ઓવરલેઝ.

Navigator.push/pop અથવા showDialog વિના Navigator 2.0 પેજો અને સ્ક્રીન-લોકલ ઓવરલેઝને નિયંત્રિત કરો.

પેજો ડેટા છે

PageEntry ફક્ત મેટાડેટા સંગ્રહે છે. UI તમારો રીઝોલ્વર બનાવે છે.

સ્ક્રીન-લોકલ ઓવરલેઝ

ડાયલોગ્સ અને બોટમ શીટ્સ દરેક સ્ક્રીન પર મર્યાદિત, ગ્લોબલ સ્ટેટ વિના.

સ્ટેટ-નિરપેક્ષ

setState, Riverpod, Bloc અથવા Provider વાપરો. કોઈ ડિપેન્ડન્સી જરૂરી નથી.

પ્રથમ પગલાં

declarative_nav ઇન્સ્ટોલ કરો અને રીઝોલ્વર કૉलबેકથી પેજો રેન્ડર કરો.

ઇન્સ્ટોલેશન

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 કૉલ્સ. સ્ટેટમાંથી નેવિગેશન અને ઓવરલેઝને ચલાવો.

પાછલું

ઝલક