Flutter大型项目架构:路由管理篇
import 'package:flutter/material.dart';
// 定义一个路由管理器类
class RouterManager {
// 使用静态变量存储路由表
static final routes = {
'/': (context) => HomePage(),
'/settings': (context) => SettingsPage(),
'/profile': (context) => ProfilePage(),
};
// 定义一个方法来处理导航到指定路由
static Route<dynamic> generateRoute(RouteSettings settings) {
// 检查路由表中是否有匹配的路由
final route = routes[settings.name];
if (route != null) {
// 如果有,返回对应的页面
return MaterialPageRoute(builder: (context) => route(context));
}
// 如果没有,默认导航到首页
return MaterialPageRoute(builder: (context) => HomePage());
}
}
// 使用路由管理器
void main() {
runApp(MaterialApp(
onGenerateRoute: RouterManager.generateRoute,
));
}
// 示例页面类
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('首页')),
body: Center(child: Text('首页内容')),
);
}
}
class SettingsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('设置')),
body: Center(child: Text('设置内容')),
);
}
}
class ProfilePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('个人资料')),
body: Center(child: Text('个人资料内容')),
);
}
}
这个代码示例展示了如何在Flutter中实现一个简单的路由管理器。它定义了一个RouterManager
类,其中包含了一个静态路由表和一个生成路由的方法。在应用程序的入口点,我们通过onGenerateRoute
属性使用这个管理器来处理所有的路由导航。这样可以确保应用程序的导航逻辑集中管理,从而使得代码更加模块化和可维护。
评论已关闭