Flutter学习总结(十五、Flutter页面跳转)

Flutter页面跳转

一起从0开始学习Flutter!

在Flutter中的页面跳转使用路由的机制,这里路由又分为静态路由和动态路由,静态路由我们在最开始的时候注册好每个页面对应的路由就可以,动态路由需要我们在使用的时候去生成路由,需要注意的是静态路由我们是无法传递参数的,如果想要传递参数需要使用动态路由,现在我们开始学习这两种路由。

静态路由

静态路由我们需要先进行路由注册,我们看下最开始我们创建一个demo时MyApp里的MaterialApp,里面有个属性是routes,我们需要将我们的静态路由信息注册到这里。例如:

routes: {
        "/list/scroll":(BuildContext context) =>ScrollViewDemo(),
        "/list/sample":(BuildContext context) =>ListSample(),
      }

在我们使用的时候我们可以使用定义的名字来进行跳转:

Navigator.of(context).pushNamed('/list/scroll');

如果我们跳转到下一个页面后想要返回数据结果我们需要在then后传入一个带有传参的函数,静态调用只能是获取到后一页的返回数据,但是无法传入到后一页的数据。

Navigator.of(context).pushNamed("/list/scroll").then((value){
              print("有回调了");
            });

在跳转后的页面如果我们想要返回前面一页则可以调用pop()方法,可以将想要返回的参数传入进去。

Navigator.of(context).pop(100);

动态路由

我们如果想要传递参数到下一页的时候就需要使用动态路由了,我们看下如何调用的:

Navigator.of(context)
                .push(MaterialPageRoute(builder: (context) => NetsScrollViewClass(title: "Hello NetsScrollView",)));

我们需要传入一个builder,看下builder为:

typedef WidgetBuilder = Widget Function(BuildContext context);

我们需要传入一个带有Context参数,返回一个Widget。
我们想要传递的参数就需要修改要跳转页面的构造方法,可以传入想要传递的参数即可。

我们还可以添加跳转动画,例如添加一个平移动画:

 Navigator.of(context).push(PageRouteBuilder(pageBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation){
              return NetsScrollViewClass(title: "Transition Animation",);
            },
              transitionsBuilder: (context,  animation,  secondaryAnimation, child)=> SlideTransition(position: Tween<Offset>(
                begin: const Offset(1.0, 0.0),
                end: const Offset(0.0, 0.0)
              ).animate(animation),child: child,)
            ),);

本篇的路由跳转比较简单,大家可以练习。

接下来我们学习Flutter中的弹框

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值