Flutter 日记App-get全局路由

路由配置

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的路由管理也比较容易使用,需要注意的是多页面跳转的时候,注意参数类型的判断和参数格式的处理,由于框架限制,通常是只能传一个参数,可以使用数组等多种方式进行灵活使用。针对特殊的界面可以单独定义一个函数,将参数直接带入。

相关推荐
恋猫de小郭28 分钟前
Flutter Android 性能修复:8 个大核的手机,Raster 居然只跑在 2 个核上?
android·flutter
2501_916008891 小时前
iOS App 图标、启动屏和多语言搭配 方法,上架前使用KXBuild一次做好 App 图标
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_915918411 小时前
iOS 推送通知怎么实现,从 APNs p8 密钥到 iOS 真机收到第一条推送
vscode·ios·objective-c·个人开发·swift·敏捷流程
茶底世界之下21 小时前
雨夜街角裁成方图,人物与冷暖光还能共存吗?
ios
youdexiang1 天前
IOS录音APP拍照记录能和音频同步吗
ios·音视频
恋猫de小郭1 天前
感人,Flutter 居然有了一个超实用提案,期待落地
android·前端·flutter
2501_915909061 天前
Windows 打开 Xcode 工程,编译调试 Xcode 项目并和 Mac 同事协作
ide·windows·vscode·macos·ios·个人开发·xcode
互联网江湖1 天前
iPhone Duo跌倒,国产折叠屏手机吃饱?
ios·智能手机·iphone
zwd20052 天前
词频是什么?生词滑块 zipf 3.0 到 5.0 怎么调:同一屏从 0 个生词到 11 个
ios·iphone·效率工具·英语学习·词频·屏幕翻译
好的佩奇2 天前
Dart 之增强枚举
android·flutter·dart