ການນໍາທາງແບບປະກາດ ແລະ overlay ສໍາລັບ Flutter.

ຄວບຄຸມໜ້າ Navigator 2.0 ແລະ overlay ເຉພາະໜ້າຈໍ ໂດຍບໍ່ໃຊ້ Navigator.push/pop ຫຼື showDialog.

ໜ້າແມ່ນຂໍ້ມູນ

PageEntry ເກັບໄວ້ແຕ່ metadata ເທົ່ານັ້ນ. UI ສ້າງໂດຍ resolver ຂອງທ່ານ.

Overlay ເຉພາະໜ້າຈໍ

Dialog ແລະ bottom sheet ຈໍາກັດຕໍ່ແຕ່ລະໜ້າຈໍ ໂດຍບໍ່ມີສະຖານະກໍາທົ່ວໄປ.

ບໍ່ຂຶ້ນກັບສະຖານະ

ໃຊ້ setState, Riverpod, Bloc ຫຼື Provider. ບໍ່ຈໍາເປັນຕ້ອງມີ dependency.

ຂັ້ນຕອນເລີ່ມຕົ້ນ

ຕິດຕັ້ງ declarative_nav ແລະ render ໜ້າຜ່ານ 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. ຄວບຄຸມນໍາທາງແລະ overlay ຈາກສະຖານະ.

ກ່ອນໜ້າ

ພາບລວມ