首页 > 其他分享 >flutter 中的ModalRoute 传值

flutter 中的ModalRoute 传值

时间:2024-01-05 10:36:18浏览次数:19  
标签:settings Flutter RouteSettings Dart ModalRoute context flutter 传值


ModalRoute 传值 - 基础路由传值

MaterialPageRoute 的构造参数中 可以看到 RouteSettings: settings 这个参数

RouteSettings 构造函数如下:

const RouteSettings({
    this.name,
    this.isInitialRoute = false,
    this.arguments,
  });

其实 RouteSettings 就是路由的基本信息,arguments 可以用来存储路由相关的参数字段:

下面是一个基本的路由跳转,页面 Widget 构造函数不接受参合参数,但是路由的 settings 中配置了一个对象

Navigator.of(context).push(
  new MaterialPageRoute(
    builder: (context) {
      return NewRouteWidget();
    },
    settings: RouteSettings(
      arguments: {'name': 'postbird'},
    ), // 传参
    fullscreenDialog: true,
  ),
);

NewRouteWidget Widget 中想要拿到配置的 arguments 可以通过 ModalRoute 来拿

ModalRoute 构造如下:

/// Creates a route that blocks interaction with previous routes.
  ModalRoute({
    RouteSettings settings,
  }) : super(settings: settings);

所以整个新页面 Widget 使用如下:

// 新路由页面
class NewRouteWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Map args = ModalRoute.of(context).settings.arguments;
    return Scaffold(
        appBar: AppBar(title: Text('获取参数')),
        body: Center(
            child: Column(
          children: <Widget>[
            Text(args.toString()),
            FlatButton(
              child: Text('pop'),
              onPressed: () {
                Navigator.pop(context);
              },
            )
          ],
        )));
  }
}

效果:

flutter 中的ModalRoute 传值_Dart

最后

这里也为想要学习Flutter的朋友们准备了两份学习资料《Flutter Dart语言编程入门到精通》《Flutter实战》,从编程语言到项目实战,一条龙服务!!

《Flutter Dart 语言编程入门到精通》

  • 第一章 Dart语言基础
  • 第二章 Dart 异步编程
  • flutter 中的ModalRoute 传值_flutter_02

  • 第三章 异步之 Stream 详解
  • 第四章 Dart标准输入输出流
  • flutter 中的ModalRoute 传值_javascript_03

  • 第五章 Dart 网络编程
  • 第六章 Flutter 爬虫与服务端
  • flutter 中的ModalRoute 传值_android_04

  • 第七章 Dart 的服务端开发
  • 第八章 Dart 调用C语言混合编程
  • 第九章 LuaDardo中Dart与Lua的相互调用
  • flutter 中的ModalRoute 传值_Dart_05

《Flutter实战:第二版》

  • 第一章:起步
  • 第二章:第一个Flutter应用
  • 第三章:基础组件
  • 第四章:布局类组件
  • 第五章:容器类组件

flutter 中的ModalRoute 传值_Dart_06

  • 第六章:可滚动组件
  • 第七章:功能型组件
  • 第八章:事件处理与通知
  • 第九章:动画
  • 第十章:自定义组件
  • flutter 中的ModalRoute 传值_flutter_07

  • 第十一章:文件操作与网络请求
  • 第十二章:Flutter扩展
  • 第十三章:国际化
  • 第十四章:Flutter核心原理
  • 第十五章:一个完整的Flutter应用
  • flutter 中的ModalRoute 传值_javascript_08

标签:settings,Flutter,RouteSettings,Dart,ModalRoute,context,flutter,传值
From: https://blog.51cto.com/u_16163480/9110223

相关文章

  • Flutter中GridTile中图像上方的InkVell波纹
    Flutter中GridTile中图像上方的InkVell波纹我认为这是在图像上显示波纹效果的更好方法。Ink.image(image:AssetImage('sample.jpg'),fit:BoxFit.cover,child:InkWell(onTap:(){},),),使用Stack,我们可以将Material和InkWell带到图像上。要拉伸材......
  • 安卓环境配置选项和flutter 滑动控制
    isDebug=truehostDebug=trueshowUmengToast=false安卓环境中的这几个配置选项isDebug=true:表示是否启用调试模式。如果设置为true,应用程序将以调试模式运行,这通常允许开发人员执行调试操作并查看更详细的日志信息。hostDebug=true:表示是否启用主机调试。如果设置为true,可能......
  • Flutter学习笔记(一)配置环境
    主题本文主题,就是介绍如何配置flutter当前环境win10as2022.1.1版本jdk11配置过程下载fluttersdk首先,从官网下载一个flutter的sdk,下载地址博主当前使用版本为–flutter_windows_3.7.8-stable配置fluttersdk环境(1)下载sdk后,解压,进入bin目录,复制完整路径,打开系统环境变量页面,在Path栏......
  • 『Flutter』开篇
    什么是FlutterFlutter是由Google开发的开源框架Flutter用于构建跨平台的移动应用程序Flutter它允许开发者使用同一套代码来同时为IOS和Android平台开发应用程序Flutter使用Dart语言开发,特点是拥有高性能的渲染引擎和丰富的组件库Flutter特性跨平台能力:Flu......
  • flutter ios swift avplayer 播放器自动播放下一集
    使用监听监听结束事件importFoundationimportAVKitimportMediaPlayerimportFlutterclassFlutterAVPlayerView:NSObject,FlutterPlatformView{privatevar_flutterAVPlayerViewController:AVPlayerViewControllerprivatevarurlArray:[URL]=[]......
  • ACTF flutter逆向学习
    参考了许多大佬的博客,在此特别诚挚感谢oacia大佬和其他大佬的博客和指导!1.flutter和apk基础结构介绍首先下载附件,是一个apk文件,用jadx打开可以看见flutter字样,而flutter是一种目前比较流行的android框架,很多app都是用的该框架构建,而该原生框架是建立在app的native层。Androi......
  • # vue3 组件之间传值
    vue3组件之间传值非常好,为啥突然开这样一篇博文,首先是因为vue3是未来发展的趋势。其次,vue官方已经确认,将于2023年最后一天停止对vue2项目的维护,这个是官方发出的通知,并且呢,尤雨溪团队也已经将vue3作为了vue的默认版本了,同时呢,无论是elementUI和ant-d组件库团队,也......
  • flutter IOS 原生交互同一个插件多个方法调用
    由于代码比价简单直接上代码ios/Runner/AppDelegate.swiftimportUIKitimportFlutter@UIApplicationMain@objcclassAppDelegate:FlutterAppDelegate{overridefuncapplication(_application:UIApplication,didFinishLaunchingWithOptionslaunchOption......
  • flutter 添加原生IOS 播放器
    定义播放器FlutterAVPlayer.swiftimportFoundationimportAVKitimportMediaPlayerimportFlutterclassFlutterAVPlayer:NSObject,FlutterPlatformView{privatevar_flutterAVPlayerViewController:AVPlayerViewController;init(frame:CGRect,......
  • keycloak~从login-status-iframe页面总结如何跨域传值~续
    keycloak~从login-status-iframe相关文章,可阅读我的这两篇keycloak~从login-status-iframe页面总结如何跨域传值,keycloak~对接login-status-iframe页面判断用户状态变更。什么是跨域跨域(Cross-Origin)是指在Web开发中,当一个资源(比如JavaScript、CSS、图片等)来自于不同域名、协......