التنقّل التصريحي والطبقات في Flutter.

تحكم في صفحات Navigator 2.0 والطبقات المحلية للشاشة بدون Navigator.push/pop أو showDialog.

الصفحات بيانات

يخزن PageEntry البيانات الوصفية فقط. تُنشأ الواجهة بواسطة المُحلّل لديك.

طبقات محلية للشاشة

تُحصر الحوارات واللوحات السفلية لكل شاشة بدون حالة عامة.

محايد للحالة

استخدم 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. حرّك التنقّل والطبقات من الحالة بدلاً من ذلك.

السابق

نظرة عامة

التالي

التثبيت