1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vitalapp/routes/nav_ids.dart';
- import 'package:vitalapp/routes/routes.dart';
- import 'package:vitalapp/routes/transition.dart';
- class HomeNavigator extends StatelessWidget {
- const HomeNavigator({super.key});
- @override
- Widget build(BuildContext context) {
- return Navigator(
- key: Get.nestedKey(
- NavIds.HOME,
- ),
- initialRoute: "/dashboard",
- 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),
- );
- }
- }
- }
|