首页
学习
活动
专区
圈层
工具
发布

Flutter路由管理和页面参数的传递(获取&返回)

前言 在做 Flutter 开发的时候所有的页面以及页面上的元素都变成了 Widget ,创建一个页面或者视图直接 new 一个新的 widget 就可以,相关的参数我们可以直接通过构造函数直接传递。...arguments['name'] : 'null'}"), ), ); } } 上面是一个简单的 Flutter 的视图组件,我们在使用参数 arguments 的时候只需要将其传入到...builder 是一个WidgetBuilder类型的回调函数,它的作用是构建路由页面的具体内容,返回值是一个widget。...> routers 当中注册的所有 Widget 的构造函数中都有一个 Map 类型并且名为 arguments 的参数。...之前通过在 WidgetsApp 注册routes 的方式默认生成的 PageRoute 类型为 MaterialPageRoute 。

5.5K40

Flutter结合鸿蒙next 中数据类型转换的高级用法:dynamic 类型与其他类型的转换解析

写在前面在 Flutter 开发中,数据类型转换是一个重要的概念,尤其是 dynamic 类型的使用。dynamic 类型允许我们在运行时进行灵活的操作,但同时也引入了类型安全性的问题。...2.2 使用 is 操作符在进行类型转换之前,可以使用 is 操作符检查变量的类型。这样可以避免不必要的运行时错误。示例dynamic variable = "Hello, Flutter!"...3.2 使用 Null SafetyDart 2.12 引入了 Null Safety,建议在使用 dynamic 类型时考虑使用 dynamic? 以防止空指针异常。示例dynamic?...写在最后在 Flutter 开发中,dynamic 类型提供了灵活性,但同时也带来了潜在的类型安全性问题。...通过使用 is 操作符、异常处理和 Null Safety,我们可以更有效地管理数据类型的转换。希望本文能帮助你在 Flutter 开发中更好地理解和应用数据类型转换的高级用法。

58600
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter之WidgetsApp使用详解&与MaterialApp的纠缠

    未经过改装的MaterialApp 可以说MaterialApp基于WidgetsApp 如果对MaterialApp不熟悉,可先看我上一篇文章: Flutter之MaterialApp使用详解...1. textStyle 为应用中的文本使用的默认样式 使用 //该段代码源自flutter/material/app.dart //因为MaterialApp都是使用Theme里面的主题色,并且一般部件使用的是..."/")时返回home的Widget 所以可以推测当程序启动时,会调用一个以"/"为路由名的Widget 下面来看一段源码 Routedynamic> _onGenerateRoute(RouteSettings...= null) { builder = (BuildContext context) => widget.home; } else { //这里查找路由对应的Widget,即为routes...= null) { //可以看到默认是使用MaterialPageRoute的切换界面动画 return new MaterialPageRoutedynamic>( builder

    2.3K31

    Flutter路由管理和页面参数的传递(源码分析)

    前言 上一篇 Flutter路由管理和页面参数的传递(获取&返回) 文章中我们讲述了这么用代码实现 Flutter 中页面参数的传递,这一篇我们用源码分析一下 Navigator 为什么可以进行页面参数传递...我们从 Flutter 应用程序的入口开始一步一步跟进代码的执行: void main() => runApp(MyApp()); class MyApp extends StatelessWidget...传入 routes 和 onGenerateRoute 等参数,MaterialApp 的 state 是 _MaterialAppState 它构建的是 WidgetsApp 类型的 Widget...= null) return widget.onGenerateRoute(settings); return null; } widget.pageRouteBuilder 的方法,我们在生成...这个解释了在 Flutter路由管理和页面参数的传递(获取&返回) 这篇文章末尾说的 onGenerateRoute 方式进行的参数传递,必须不能进行 routers 的注册。

    1.6K10

    Flutter 页面交互 | 路由跳转方式、常用API、发送接收数据、可能发生的问题与知识点拓展

    ); // })); //把以上代码 封装一个函数 处理路由返回的数据 // 利用Future变量类型的 then方法,拿到返回的数据...可以写main函数,也可以不写; 建议只在首页写main,其他页面不要写,便于查找和维护; 命名路由 路径名称的 正确性(定义与使用要相符合)、 传参(参数类型)的一致性的问题; 1....---- 参考自CSDN的Flutter入门课程 main.dart import 'package:flutter/material.dart'; import 'ContentPage.dart';...// 接收数据是异步的,需要加 async关键字; // 需要接收数据,需要加 await关键字; // 需要准备一个数据类型变量,来承载; // 指定函数返回类型为String,Alt...// 利用Future变量类型的 then方法,拿到返回的数据 // value位置是一个形参,名字可以随便起,这个形参位置就是返回的数据 //

    4.5K10

    flutter系列之:如何自定义动画路由

    简介flutter中有默认的Route组件,叫做MaterialPageRoute,一般情况下我们在flutter中进行跳转的话,只需要向Navigator中传入一个MaterialPageRoute就可以了...flutter动画基础flutter中有个专门的动画包叫做flutter/animation.dart, flutter中所有动画的核心叫做Animation。...= null), super(listenable: position);看下它的构造函数,可以看到SlideTransition需要一个position的属性,这个position是一个Animation...Tween表示的是开始值和结束值之间的线性插值,是一个动态过程,另外我们还可以这个插值变动的曲线,这里使用了CurveTween,选中了Curves.easeOut这种曲线类型。...总结最后程序运行的结果如下:其实flutter中的动画很简单,大家记住就是widget位置沿不同的曲线变化即可。

    1K30

    Flutter | 路由管理

    ; })); }, ) 复制代码 效果: MaterialPageRoute MaterialPageRoute 是 Material 组件库提供的组件,他可以针对不同的平台,...settings, this.maintainState = true, bool fullscreenDialog = false, }) builder 是 WidgetBuilder 类型的回调函数...,在 ios 中若此参数为 true,新页面会从底部滑入,而不是水平方向 Navigator Navigator 是一个路由管理组件,它提供了打开和退出路由方法 Navigator 通过栈来管理活动路由集合...I/flutter (23778): 路由返回值 我是返回值 复制代码 需要注意的是 ​ 1,参数是通过构造方法传入的 ​ 2,如果点击左上角,或者返回按钮进行返回,则页面返回的值为 null 命名路由...} ); } ); 复制代码 参考资料: Flutter官网 Flutter 实战

    1.1K20

    Flutter | 路由管理

    ; })); }, ) image.png MaterialPageRoute MaterialPageRoute 是 Material 组件库提供的组件,他可以针对不同的平台...settings, this.maintainState = true, bool fullscreenDialog = false, }) builder 是 WidgetBuilder 类型的回调函数...中若此参数为 true,新页面会从底部滑入,而不是水平方向 Navigator Navigator 是一个路由管理组件,它提供了打开和退出路由方法 Navigator 通过栈来管理活动路由集合,通常屏幕显示的页面就是栈顶路由...I/flutter (23778): 路由返回值 我是返回值 需要注意的是 ​ 1,参数是通过构造方法传入的 ​ 2,如果点击左上角,或者返回按钮进行返回,则页面返回的值为 null 命名路由 有名字的路由...} ); } ); ---- 参考资料: Flutter官网 Flutter 实战

    1.3K50

    flutter系列之:在flutter中使用导航Navigator

    简介 一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用...flutter中的Navigator Navigator是flutter中用来导航的关键组件。...首先是pages,pages是一个List对象: final Listdynamic>> pages; 这里的pages存储的就是历史访问信息,Navigator的所有操作都是围绕着pages...因为push方法需要一个Route对象,这里我们使用了最简单的MaterialPageRoute,然后返回第二个图像widget对象。...总结 Navigator是每个flutter app都少不了的组件,希望大家能够掌握。 本文的例子:https://github.com/ddean2009/learn-flutter.git

    85920

    flutter系列之:在flutter中使用导航Navigator

    简介 一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用...flutter中的Navigator Navigator是flutter中用来导航的关键组件。...首先是pages,pages是一个List对象: final Listdynamic>> pages; 这里的pages存储的就是历史访问信息,Navigator的所有操作都是围绕着pages...因为push方法需要一个Route对象,这里我们使用了最简单的MaterialPageRoute,然后返回第二个图像widget对象。...总结 Navigator是每个flutter app都少不了的组件,希望大家能够掌握。 本文的例子:https://github.com/ddean2009/learn-flutter.git

    1.2K20
    领券