123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vitalapp/pages/home/controller.dart';
- import 'package:vitalapp/routes/nav_ids.dart';
- import 'package:vitalapp/routes/routes.dart';
- import 'package:vitalapp/routes/transition.dart';
- class HomeNavigator extends StatelessWidget {
- HomeNavigator({super.key});
- final controller = Get.find<HomeController>();
- @override
- Widget build(BuildContext context) {
- return Navigator(
- key: Get.nestedKey(
- NavIds.HOME,
- ),
- initialRoute: controller.state.currentSelectMenu,
- onGenerateRoute: onGenerateRoute,
- );
- }
- /// 路由生成器
- Route? onGenerateRoute(RouteSettings settings) {
- String? name = settings.name;
- if (name == null) return null;
- name = name.split("?")[0];
- if (name == "/") return null;
- final route = Routes.routes.firstWhereOrNull((e) => e.name == name);
- if (route != null) {
- return GetPageRoute(
- page: route.page,
- binding: route.binding,
- transition: Transition.rightToLeft,
- customTransition: FTransitions.sharedAxisHorizontal,
- // transitionDuration: const Duration(milliseconds: 1000),
- );
- } else {
- return GetPageRoute(
- page: () => Container(
- color: Colors.white,
- child: Center(
- child: Text(
- "Route: $name",
- style: const TextStyle(fontSize: 32),
- ),
- ),
- ),
- binding: BindingsBuilder(() {}),
- transition: Transition.rightToLeft,
- customTransition: FTransitions.sharedAxisHorizontal,
- // transitionDuration: const Duration(milliseconds: 1000),
- );
- }
- }
- }
|