美文网首页Flutter前端开发那些事儿
Flutter 自定义全局路由跳转动画

Flutter 自定义全局路由跳转动画

作者: Karedem | 来源:发表于2021-01-28 09:44 被阅读0次

    网上多数是通过

    
    Navigator.of(context).push(CustomRoute(builder:(ctx)=>APage()))
    
    

    或者

    Navigator.push(context,PageRouteBuilder(pageBuilder:
    
                          (BuildContext context,Animation animation,
    
                              Animation secondaryAnimation){
    
                        return ScaleTransition(
    
                            scale: animation,
    
                            alignment: Alignment.bottomRight,
    
                            child: AnimPage());
    

    但是有的同学可能是通过PushName 来跳转 , 这样需要每个push都手动改一遍,

    以及PopUtil方法可能也需要在Material routes属性中先定义好 还是比较繁琐的

    所以想在一个地方直接修改全局的默认跳转动画

    于是查看MaterialApp源码发现

    pageRouteBuilder 属性已经写死了, 在定义完routes之后 , 默认是调用这个属性去生成 PageRoute , 因此我们只需要改这个地方

    image
    pageRouteBuilder: (RouteSettings settings,WidgetBuilder builder){
    
      return XXPageRoute(settings: settings,builder: builder);
    
    },
    

    XXPageRoute继承自PageRoute , 在里面实现页面切换的动画

    另外注意一个地方, 修改后的类名仍要是 MaterialApp, as 别名为其他再调用

    相关文章

      网友评论

        本文标题:Flutter 自定义全局路由跳转动画

        本文链接:https://www.haomeiwen.com/subject/ailttltx.html