这是CaiYouHui前端,一个关于flutter的安卓app,前端使用flutter实现

app_router.dart 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:flutter/material.dart';
  2. import '../screens/auth/login_screen.dart';
  3. import '../screens/auth/register_screen.dart';
  4. import '../screens/home/home_screen.dart';
  5. import '../screens/news/news_screen.dart';
  6. import '../screens/services/services_screen.dart';
  7. import '../screens/profile/profile_screen.dart';
  8. import '../screens/profile/profile_detail_screen.dart';
  9. import '../screens/splash_screen.dart';
  10. import '../../core/constants/route_constants.dart';
  11. import 'route_guards.dart';
  12. class AppRouter {
  13. static Route<dynamic> onGenerateRoute(RouteSettings settings) {
  14. switch (settings.name) {
  15. case RouteConstants.splash:
  16. return MaterialPageRoute(builder: (_) => const SplashScreen());
  17. case RouteConstants.home:
  18. return MaterialPageRoute(builder: (_) => const HomeScreen());
  19. case RouteConstants.login:
  20. return MaterialPageRoute(builder: (_) => const LoginScreen());
  21. case RouteConstants.register:
  22. return MaterialPageRoute(builder: (_) => const RegisterScreen());
  23. case RouteConstants.news:
  24. return MaterialPageRoute(builder: (_) => const NewsScreen());
  25. case RouteConstants.services:
  26. return MaterialPageRoute(builder: (_) => const ServicesScreen());
  27. case RouteConstants.profile:
  28. return MaterialPageRoute(builder: (_) => const ProfileScreen());
  29. case RouteConstants.profileDetail:
  30. return MaterialPageRoute(
  31. builder: (_) => ProtectedRoute(
  32. routeName: RouteConstants.profileDetail,
  33. child: const ProfileDetailScreen(),
  34. ),
  35. );
  36. default:
  37. return MaterialPageRoute(
  38. builder: (_) => Scaffold(
  39. body: Center(
  40. child: Text('找不到页面: ${settings.name}'),
  41. ),
  42. ),
  43. );
  44. }
  45. }
  46. static void configureRoutes(BuildContext context) {
  47. // 替换主应用的路由生成器
  48. final materialApp = context.findAncestorWidgetOfExactType<MaterialApp>();
  49. if (materialApp != null) {
  50. // 这里通常会在main.dart中配置
  51. }
  52. }
  53. }