Flutter路由跳转详解

简介: Flutter路由跳转详解

flutter中跳转一直记了忘,忘了记,在这里记录下吧:


和安卓中的intent类似,跳转新页面需要当前上下文以及需要跳转的页面。如果有数据需要传输也可,参数通过跳转页面的构造方法传递。


1、不带参数直接跳转

///不带参数的路由表跳转
Navigator.pushNamed(context, routeName);

2、带参数直接跳转

///带参数的路由表跳转 ,one、two为参数。需要在对应页面写好对应构造方法
Navigator.pushNamed(context, routeName(one,two));

这两种页面跳转我理解为普通跳转,即按返回键可以返回(类似于安卓中的入栈)。下面的都可以利用构造方法为跳转的新页面进行传递参数,为了简洁(实际上是因为懒)就不重复写了。


3、跳转新页面并且替换,比如登录页跳转主页

///跳转新页面并且替换
Navigator.pushReplacementNamed(context, routeName);

4、跳转到新的路由,并且关闭给定路由的之前的所有页面。可用于退出登录返回到登录页面

///跳转到新的路由,并且关闭给定路由的之前的所有页面
Navigator.pushNamedAndRemoveUntil(context, '/calendar', ModalRoute.withName('/'));

5、带参数的路由跳转,并且监听返回

///带参数的路由跳转,并且监听返回
Navigator.push(context, new MaterialPageRoute(builder: (context) => new NotifyPage())).then((res) {
      ///获取返回处理
    });

Navigator 的 push 返回的是一个 Future,这个Future 的作用是在页面返回时被调用的。也就是你可以通过 Navigator 的 pop 时返回参数,之后在 Future 中可以的监听中处理页面的返回结果。处理方法如下:


@optionalTypeArgs
static Future<T> push<T extends Object>(BuildContext context, Route<T> route) {
  return Navigator.of(context).push(route);
}


目录
相关文章
|
7月前
|
Dart Android开发 UED
带你读《深入浅出Dart》二十七、Flutter路由管理
带你读《深入浅出Dart》二十七、Flutter路由管理
|
10月前
Flutter Getx 路由 until 方法帮助你跳转指定路由
不少同学都会问我,这样一个场景,当我点击商品列表,进入商品页,点击购买,支付成功后,想返回商品页,或者我的中心的订单列表。怎么做,这中间跨度了 n 个路由。 我不只一次的推荐 GetX 的 until 方法,和 offNamedUntil 方法。 我写了个 demo 今天我们就一起来看下这两个方法如何使用。
740 0
Flutter Getx 路由 until 方法帮助你跳转指定路由
|
4月前
|
安全 Go 数据安全/隐私保护
Flutter开发笔记:Flutter路由技术
Flutter开发笔记:Flutter路由技术
350 0
|
4月前
|
BI
Flutter笔记:路由观察者
Flutter笔记:路由观察者
77 0
|
5月前
|
UED
Flutter之自定义路由切换动画
Flutter之自定义路由切换动画 在Flutter中,我们可以通过Navigator来实现路由管理,包括路由的跳转和返回等。默认情况下,Flutter提供了一些简单的路由切换动画,但是有时候我们需要自定义一些特殊的动画效果来提高用户体验。本文将介绍如何在Flutter中实现自定义的路由切换动画。
|
5月前
|
API
Flutter状态管理终极方案GetX第一篇——路由
Flutter状态管理终极方案GetX第一篇——路由 GetX是Flutter中一个非常流行的状态管理库,它不仅提供了简单易用的状态管理功能,还可以帮助我们方便地管理路由。在这篇文章中,我们将介绍如何使用GetX来实现路由管理。
147 0
Flutter 路由
Flutter 路由
50 0
|
存储 监控
flutter系列之:如何自定义动画路由
flutter中有默认的Route组件,叫做MaterialPageRoute,一般情况下我们在flutter中进行跳转的话,只需要向Navigator中传入一个MaterialPageRoute就可以了。 但是MaterialPageRoute太普通了,如果我们想要做点不同的跳转特效应该如何处理呢? 一起来看看吧。
|
Android开发 iOS开发
flutter 路由管理- Navigator的push和pop
Navigator类是flutter一个路由管理的组件,通过一个栈来管理活动路由集合,通常当前屏幕显示的页面就是栈顶的路由。
973 0
|
Dart 数据安全/隐私保护 Android开发
Flutter | 路由管理
Flutter | 路由管理