首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter入门-路由导航

其中PageRoute 是一个抽象类,表示占有整个屏幕空间的一个模态路由页面,其定义了路由构建及切换过渡动画的接口及属性。...设置为false时,在入栈新页面时,释放当前原路由所占用的资源 fullscreenDialog 新路由是否是一个全屏的模态对话框,例如在ios中,如果为true,则新页面从屏幕底部滑入,不是水平...对于Android,当打开新页面时,新的页面会从屏幕底部滑动到屏幕顶部;当关闭页面时,当前页面会从屏幕顶部滑动到屏幕底部后消失,同时上一个页面会显示到屏幕上。...对于iOS,当打开页面时,新的页面会从屏幕右侧边缘一致滑动到屏幕左边,直到新页面全部显示到屏幕上,上一个页面则会从当前屏幕滑动到屏幕左侧消失;当关闭页面时,正好相反,当前页面会从屏幕右侧滑出,同时上一个页面会从屏幕左侧滑入...即为回传的数据 }, 发送端 Navigator.of(context).pop("我是返回的数据"); 参考资料 Flutter实战-书籍

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

Flutter 小技巧之优化你使用的 BuildContext

mounted) return;          Navigator.of(context).pop();       },     ),   ); } } 上面代码里的 mounted 标识位来自于..."Tip")));     },   ); } } 由于在 5 秒之内,Item 被划出了屏幕,所以对应的 Elment 其实是被释放了,从而由于 mounted 判断,SnackBar 不会被弹出。...我们知道不管是 ScaffoldMessenger.of(context) 还是 Navigator.of(context) ,它本质还是通过 context 去往上查找对应的 InheritedWidget...首先前面我们一直说,通过 of(context) 获取到的是 InheritedWidget , 当 InheritedWidget 发生改变时,就是通过触发绑定过的 Element 里...真正对性能有影响的是 of(context) 的绑定数量和获取到对象之后的自定义逻辑,例如你通过 MediaQuery.of(context).size 获取到屏幕大小之后,通过一系列复杂计算来定位你的控件

1.2K00

Flutter中的路由与跳转

页面出栈 ---- 在Flutter中我们可以使用Navigator.of(context).pop()进行出栈操作,但是值得注意的时如果页面上有Dialog、BottomSheet、popMenu类似的...处理出栈页面返回值 在前面我们介绍到Navigator.of(context).pop()可以使得页面出栈,当然这个pop方法也是可以传值的,只用Navigator.of(context).pop(attrs...)就可以传入自己想要返回的值 第二个页面,我们调用 Navigator.of(context).pop("我是第二个页面返回的数据:$title"); 在第一个页面我们接收第二个页面返回的值 Future...future = Navigator.of(context).pushNamed("/pageB"); future.then((value) { showDialog( context: context...小结 ---- 使用Navigator.of(context).pushName(“/“)可以进行静态路由的跳转 使用push(Route)可以进行态路由的跳转 动态路由可以传入未知数据 使用pop()

1.5K20

【Flutter 专题】57 图解页面小跳转 (三)

时设置了右进右出的路由动效; 上述两种方式的区别是:pushReplacementNamed / pushReplacement 直接打开 ForthPage 不会展示 ThirdPage 退出的动画效果;...对比二: 上述两种方式的区别是:pushNamedAndRemoveUntil / pushAndRemoveUntil 方式不管栈中是否存在,均会启动新的页面并清空原来的栈; popUntil...double> animation, Animation secondaryAnimation, Widget child); 和尚实现一个简单的对话框:由底部弹出且透明度由...0.0 到 1.0;但和尚在测试时 barrierColor 进入时在对话框展示完成后展示,在退出时逐渐消失;仍有待研究; FlatButton( color: Colors.green,...child: Text('ShowDialog'), onPressed: () { Navigator.of(context).push(PageRouteBuilder(

1.6K41

Flutter “跳转页面”(二)前言正文

当一个route被用来返回一个值的时候,这个route的参数类型必须和结果返回的类型一致,这就是为什么我们用MaterialPageRoute不用MaterialPageRoute<void...(如果你就不想指定返回类型,也是可以的) Popup routes “弹出route” Routes don't have to obscure the entire screen....Route并不一定非要跟屏幕一样大,弹窗可以用ModalRoute.barrierColor使部分当前屏幕不透明,用来显示内容。弹窗是一种“模态”窗口,因为他锁定了他下面的控件。...这些控件也通过Navigator的push和pop来控制显示消失。...这个route不会让整个屏幕变灰,因为他指定了opaque:false: Navigator.push(context, new PageRouteBuilder( opaque: false,

1.5K20

Flutter开发之路由与导航的实现

Navigator.of(context).pushNamed("second ", arguments: " from first page"); class SecondPage extends...MaterialPageRoute继承自PageRoute类,PageRoute类是一个抽象类,表示占有整个屏幕空间的一个模态路由页面,它还定义了路由构建及切换时过渡动画的相关接口及属性。...MaterialPageRoute 是Material组件库提供的组件,它可以针对不同平台,实现与平台页面切换动画风格一致的路由切换动画:当打开页面时,新的页面会从屏幕右侧边缘一致滑动到屏幕左边,直到新页面全部显示到屏幕上...,上一个页面则会从当前屏幕滑动到屏幕左侧消失;当关闭页面时,正好相反,当前页面会从屏幕右侧滑出,同时上一个页面会从屏幕左侧滑入。...fullscreenDialog:表示新的路由页面是否是一个全屏的模态对话框,在iOS中,如果fullscreenDialog为true,新页面将会从屏幕底部滑入(不是水平方向)。

3.2K10

两分钟带你掌握Flutter的路由与导航

一个路由是 App 中“屏幕”或“页面”的抽象,一个 Navigator 是管理多个路由的 widget 。你可以粗略地把一个路由对应到一个 UIViewController。...通过把路由的名字 push 给一个 Navigator 来跳转: Navigator.of(context).pushNamed('/b'); 您还可以使用Navigator的push方法,该方法将给定...在以下示例中,MaterialPageRoute widget是一种模版路由,它根据平台自适应替换整个页面。 在以下示例中,widget是一种模版路由,它使用平台自适应替换整个页面。...举个例子,要跳转到“位置”路由来让用户选择一个地点,你可能要这么做: Map coordinates = await Navigator.of(context).pushNamed('/location...'); 之后,在 location 路由中,一旦用户选择了地点,携带结果一起 pop() 出栈: Navigator.of(context).pop({"lat":43.821757,"long":-79.226392

2.1K20

Flutter 使用Navigator进行局部跳转页面

老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写、底部导航一直存在,每个tab各自导航场景。...Navigator Navigator 是管理路由的控件,通常情况下直接使用Navigator.of(context)的方法来跳转页面,之所以可以直接使用Navigator.of(context)是因为在...头条客户端举报场景 头条客户端每一个新闻下面都有一个“叉号”,点击弹出相关信息,点击其中的局部,会在当前小窗户内跳转到举报页面,效果如下: 此场景就是使用Navigator的典型场景,点击举报,并不是全屏切换页面...,而是仅仅在当前弹出的页面进行切换。...(context).pop(); }, ), Text('返回'), SizedBox

1.7K20
领券