第二百八十五回

文章目录

  • 概念介绍
  • 知识回顾
  • 使用方法
  • 示例代码

我们在上一章回中介绍了BoxDecoration Widget相关的内容,本章回中将介绍命名路由(Route).闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里介绍的命名路由是路由(Route)中的一种,主要用来当作导航,通过导航跳转到不同的页面,它和我们前面章回中介绍的路由类似,只不过是给路由添加了名
字,因此叫命名路由,有了名字后就可以直接通过名字来使用路由。当然了命名路由的使用还是需要Navigator配合才可以,通常是它充当Navigator中某个方法的参数。
常用的方法是pushNamed()方法。在此,大家先对命名路由有个大概的了解,本章回中将详细介绍它的使用方法。

知识回顾

在Flutter中每个StatefulWidget或者StatelessWidget都有一个路由栈,这个路由栈通过Navigator来管理,使用Navigator的of()方法可以获取到当前页面
所在的路由栈,如果想从当前页面跳转到其它页面,那么使用Navigator的push()方法,相当于把其它页面压入当前页面的路由栈,如果从当前页面返回上一级页面,那
么使用Navigator的pop()方法,相当于把当前页面从路由栈中弹出,然后显示路由栈顶部的页面,也就是当前页面的上一级页面。Navigator的push/pop()方法需
要使用Router类对象充当参数,常用的是Router类的子类:MaterialPageRoute。该类有一个WidgetBuilder类型的必选参数,WidgetBuilder类型本质上是
一个方法类型,它会返回一个Widget对象,这个对象就是压入或者弹出路由栈的页面。这里先做文字性描述,如果大家不理解的话可以看示例代码。

使用方法

  • 1.创建命名路由。具体做法为:在MaterialApp的routes属性中创建命名路由;
  • 2.创建路由的语法:routeName: WidgetBuilder对象;
  • 3.使用命名路由进行导航,具体用法为:Navigator.pushNamed(routeName);
    关于第二步中的内容大家可能不理解,我们给一个示例代码:“/route1”: (context)=> DiyWidget();代码中的route1是命名路由的名字,名字前面的反斜线是
    根路由,它默认的页面是home属性对应的页面,如果不想使用默认值,也可以使用"/"来指定,或者使用initialRouter属性指定根路由。箭头是个语法糖,箭头前后
    的内容合在一起是一个方法,方法的参数是context,方面的内容是返回一个DiyWidget类型的对象。这个方法其实就是WidgetBuilder类型,我们在上一小节中介绍
    过该类型,它是MaterialPageRoute构造方法中的参数类型。看到这里大家就会明白,命名路由就是给普通路由起了个名字,背后的原理和普通路由完全相同。

示例代码

ListTile(leading: Icon(Icons.message),title: Text("Messages"),//点击这个条目跳转到其它页面r,onTap: () {//使用普通路由// Navigator.of(context).push(//   MaterialPageRoute(builder: (context){//     return ExButton();//   })// );//下面代码是上面代码的语法糖式写法// Navigator.of(context).push(//   MaterialPageRoute(builder: (context) => ExButton())// );//使用命名路由Navigator.pushNamed(context,"/ButtonExample");},
),

我们在上面的代码中演示了普通路由和传统路由的使用方法,同时把路由封装到了ListTile中的onTap()方法里面,运行程序进点击List中的图标就可以通过路由实现
页面跳转。我在这里就是不演示程序的运行结果了,建议大家自己动手去实践。
看官们,关于命名路由相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建议CSDN不要这样吃人xue馒头

程序员裁员潮:技术变革下的职业危机 2023年以来,谷歌、阿里巴巴各个科技公司都在裁员,程序员的日子也不好过。 讨论在技术变革下,裁员对于程序员的影响到底有多大,是非常有意义的话题,但是为什么要用“一…

Vulnhub-dc5

靶场下载 https://download.vulnhub.com/dc/DC-5.zip 信息收集 # nmap -sn 192.168.1.0/24 -oN live.port Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-21 20:56 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00057s latency). MAC Address:…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第1章 统计学习方法概论

文章目录 第1章 统计学习方法概论1.1 统计学习1.统计学习的特点2.统计学习的对象3.统计学习的目的4.统计学习的方法1.2.1 基本概念1.2.2 问题的形式化 1.3 统计学习三要素1.3.1 模型1.3.2 策略1.3.3 算法 1.4 模型评估与模型选择1…

零基础学Python(5)— 基本数据类型

前言:Hello大家好,我是小哥谈。在内存中存储的数据可以有多种类型。例如:一个人的姓名可以用字符型存储,年龄可以使用数值型存储,婚姻状况可以使用布尔型存储。这里的字符型、数值型、布尔型都是Python语言中提供的基本…

WorkPlus打造高效协作的即时通讯工具,提升工作效率

在当今互联网时代,高效沟通和协作是企业成功的关键要素。而即时通讯成为了实现快速沟通和实时协作的利器。作为一款领先的即时通讯工具,WorkPlus以其卓越的性能和独特的功能,助力企业实现高效的沟通和协作。 为什么选择WorkPlus作为即时通讯…

HCIP 交换

拓扑图&IP划分如下: 第一步,配制VLAN LSW1,LSW2&LSW3同理 检测 LSW1 LSW2 测试

2024年学鸿蒙开发有前途吗?

随着科技的不断发展和智能设备的普及,鸿蒙系统作为华为自主研发的操作系统,正逐渐受到市场的关注。2024年,学鸿蒙开发是否有前途,成为了很多开发者和学生关心的问题。本文将从多个角度分析鸿蒙系统的发展前景,以及学习…

【昕宝爸爸小模块】深入浅出之为什么POI的SXSSFWorkbook占用内存更小

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你👍点赞、🗂️收藏、加❤️关注哦。 本文章CSDN首发,欢迎转载,要注明出处哦! 先感谢优秀的你能认真的看完本文&…

loadrunner脚本,并发函数web_concurrent_start(null),web_concurrent_end(null)使用

loadrunenr脚本中的代码是串行执行,一般响应时间比较快的服务,误差不会很明显。 遇到接口或服务很多的脚本,如果耗时又比较长的话,再串行起来的话,就会很慢。我之前录制脚本的时候经常会看到这个函数的出现web_concur…

初识SpringBoot

SpringBoot以约定大于配置的核心思想,默认帮我们进行了很多设置,简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架 。 创建的包一定要在项目主程序入口…

容联七陌x新飞电器|升级高效智能客服,实现满意度跃升新台阶

随着电商兴起,电器行业深入到各大电子商务平台,订单量、咨询量也随之增长,对及时响应、准确回答、高效解决、提高服务品质等需求逐渐增加。 新飞电器选择了与容联七陌合作企业版在线客服产品,共同打造高效、便捷、个性化的优质客…

手把手教你使用MDK仿真调试

当今的嵌入式系统开发领域中,高效的调试工具对于工程师来说至关重要。它们能够极大地减少开发周期中的错误追踪时间,并加速产品的上市时间。MDK作为业界领先的嵌入式开发工具之一,其内置的调试功能被广大开发者所赞誉。这些功能不仅提供了对代…

学术研究的策略与方法——从自身经验谈起

人生短短几十载,别让难过占一半 让导师喜欢和抓狂的学生 让导师喜欢的学生 积极主动、乐观向上 常跟导师汇报进展、讨论问题,主动push导师主动承担实验室的项目、课题、任务等 思维敏捷、有自己的想法见解,充满好奇 遇到问题主动寻求解决办法、提出解决…

分享一个剧本(改编自我)

不知道是不是错过了一个喜欢我的女孩,一个很不错的女孩,当初没勇气表白。去年表白过但女孩表示仅想是永远的朋友,今天翻他的朋友圈发现2021年我生日时,她分享了这首歌曲,还评论Best wishes!!!,高中有一次我…

学单片机前先学什么?

学单片机前先学什么? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#xff…

微信小程序从入门到进阶(二)

数据请求 wx.request发起网络请求&#xff0c;请求的方式主要分为两种&#xff1a; get 请求 post 请求 // get请求 // html <view><button type"primary" bindtap"onGetClick">发起 get 请求</button> </view> // js // inde…

一个简单的ETCD GUI工具

使用ETCD没有好用的GUI工具&#xff0c;随手用c#写了一个&#xff0c; 做得好玩的一个ETCD GUI工具&#xff0c;后面加上CLI 工具&#xff0c;类似于 redis Cli工具一样&#xff0c;简化在 Linux下面的操作&#xff0c;不知道有没有必要&#xff0c; git 地址如下&#xff0c;…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1(附项目源码)

本篇最终效果演示 文章目录 本篇最终效果演示系列目录前言环境素材绘制地形 实现人物移动指示显示物品名称源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1&#xff08;附项目源码&#xff09; 【制作100个unity游戏之23】实现类似七日杀、森…

记录 | git拉取LFS大文件

要下载 GitHub 或 GitLab 上使用 Git LFS 工具存储的大文件&#xff0c;可以进行以下操作&#xff1a; 安装 Git LFS&#xff1a;如果您的系统上没有安装 Git LFS&#xff0c;请先安装它。可以通过终端或命令行进行安装。克隆存储库&#xff1a;使用以下命令克隆项目存储库到本…

面向对象、封装、继承、多态、JavaBean

二、面向对象 什么是对象 什么是对象&#xff1f;之前我们讲过&#xff0c;对象就是计算机中的虚拟物体。例如 System.out&#xff0c;System.in 等等。然而&#xff0c;要开发自己的应用程序&#xff0c;只有这些现成的对象还远远不够。需要我们自己来创建新的对象。 1. 抽…