美文网首页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