网上多数是通过
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 , 因此我们只需要改这个地方
pageRouteBuilder: (RouteSettings settings,WidgetBuilder builder){
return XXPageRoute(settings: settings,builder: builder);
},
XXPageRoute继承自PageRoute , 在里面实现页面切换的动画
另外注意一个地方, 修改后的类名仍要是 MaterialApp, as 别名为其他再调用