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

app_router.dart 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. class AppRouter {
  12. static Route<dynamic> onGenerateRoute(RouteSettings settings) {
  13. switch (settings.name) {
  14. case RouteConstants.splash:
  15. return MaterialPageRoute(builder: (_) => const SplashScreen());
  16. case RouteConstants.home:
  17. return MaterialPageRoute(builder: (_) => const HomeScreen());
  18. case RouteConstants.login:
  19. return MaterialPageRoute(builder: (_) => const LoginScreen());
  20. case RouteConstants.register:
  21. return MaterialPageRoute(builder: (_) => const RegisterScreen());
  22. case RouteConstants.news:
  23. return MaterialPageRoute(builder: (_) => const NewsScreen());
  24. case RouteConstants.services:
  25. return MaterialPageRoute(builder: (_) => const ServicesScreen());
  26. case RouteConstants.profile:
  27. return MaterialPageRoute(builder: (_) => const ProfileScreen());
  28. case RouteConstants.profileDetail:
  29. return MaterialPageRoute(builder: (_) => const ProfileDetailScreen());
  30. default:
  31. return MaterialPageRoute(
  32. builder: (_) => Scaffold(
  33. body: Center(
  34. child: Text('找不到页面: ${settings.name}'),
  35. ),
  36. ),
  37. );
  38. }
  39. }
  40. static void configureRoutes(BuildContext context) {
  41. // 替换主应用的路由生成器
  42. final materialApp = context.findAncestorWidgetOfExactType<MaterialApp>();
  43. if (materialApp != null) {
  44. // 这里通常会在main.dart中配置
  45. }
  46. }
  47. }