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

app_router.dart 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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(
  29. builder: (_) => ProtectedRoute(
  30. routeName: RouteConstants.profile,
  31. child: const ProfileScreen(),
  32. ),
  33. );
  34. case RouteConstants.profileDetail:
  35. return MaterialPageRoute(
  36. builder: (_) => ProtectedRoute(
  37. routeName: RouteConstants.profileDetail,
  38. child: const ProfileDetailScreen(),
  39. ),
  40. );
  41. default:
  42. return MaterialPageRoute(
  43. builder: (_) => Scaffold(
  44. body: Center(
  45. child: Text('找不到页面: ${settings.name}'),
  46. ),
  47. ),
  48. );
  49. }
  50. }
  51. static void configureRoutes(BuildContext context) {
  52. // 替换主应用的路由生成器
  53. final materialApp = context.findAncestorWidgetOfExactType<MaterialApp>();
  54. if (materialApp != null) {
  55. // 这里通常会在main.dart中配置
  56. }
  57. }
  58. }