Flutter 开发实战

235课时
1K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
1分钟

09 路由跳转

Flutter 中的页面跳转是通过 Navigator 实现的,路由跳转又分为:带参数跳转和不带参数跳转。不带参数跳转比较简单,默认可以通过 MaterialApp 的路由表跳转;而带参数的跳转,参数通过跳转页面的构造方法传递。常用的跳转有如下几种使用:

新版本开始可以给 pushNamed 设置 arguments 参数,然后在新页面通过 ModalRoute.of(context).settings.arguments 获取。

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

///跳转新页面并且替换,比如登录页跳转主页
Navigator.pushReplacementNamed(context, routeName);

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

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

同时我们可以看到,Navigator 的 push 返回的是一个 Future,这个Future的作用是在页面返回时被调用的。也就是你可以通过 Navigatorpop 时返回参数,之后在 Future 中可以的监听中处理页面的返回结果。

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