路由配置
less
@override
Widget build(BuildContext context) {
return GetMaterialApp(
//路由页 管理
getPages: SSLRoutes.pages,
//初始路由
initialRoute: SSLRoutes.root_routes,
//主页
home: const SSLRootRoute(),
);
}
路由管理类
php
abstract class SSLRoutes{
//将类名进行常量化,防止直接使用字符串
static const root_routes = "/";
static const root_main = "/RootMain";
static const root_charts = "/RootCharts";
static const root_setting = "/RootSetting";
static const home_add_record = "/homeAddRecord";
static const home_RecordList = "/recordList";
//路由表,可以看到每一个路由对应的一个GetPage,GetPage中有很多的属性,大家可以进去看下,在这里还可以设置一些默认的参数。
static List<GetPage> pages = [
GetPage(name: root_routes, page: ()=> const SSLRootRoute()),
GetPage(name: root_main, page: ()=> const SSLHome()),
GetPage(name: home_add_record, page: ()=> const SSLAddRecord()),
GetPage(name: home_add_dream, page: ()=> const SSLAddDream()),
GetPage(name: home_RecordList, page: ()=> const SSLRecordList()),
];
}
用法
scss
//跳转到添加页,带上参数信息,参数可接收任意类型数据,同时用dreamInfo接收一个返回数据
dreamInfo = await Get.toNamed(SSLRoutes.home_add_dream,arguments: dreamInfo);
获取到返回数据后刷新界面
setState(() {
});
//返回上个界面,并带上参数dream
Get.back(result: dream);
小知识点
在传参时,可能有些参数不确定,或者不同页面进入带的参数不同,则可以添加类型判断
csharp
//获取传入的参数
var record = Get.arguments;
//判断参数类型
if (record != null){
if (record is String){
dreamId = record;
}else if (record is RecordModel){
......
}
总结
Get的路由管理也比较容易使用,需要注意的是多页面跳转的时候,注意参数类型的判断和参数格式的处理,由于框架限制,通常是只能传一个参数,可以使用数组等多种方式进行灵活使用。针对特殊的界面可以单独定义一个函数,将参数直接带入。