-
PageRouteBuilder
关键类
-
transitionDuration
和buildTransitions
重写俩个关键方法
class CSCustomRouter extends PageRouteBuilder{
final Widget widget;
// ignore: missing_required_param
CSCustomRouter(this.widget):super(
transitionDuration: Duration(milliseconds: 500),
pageBuilder: (BuildContext context,Animation<double> animation1,Animation<double> animation2){
return widget;
}
);
@override
Widget buildTransitions(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) {
// TODO: implement buildTransitions
// 渐变效果
// return FadeTransition(
// opacity: Tween(begin: 0.0,end: 1).animate(CurvedAnimation(
// parent: animation,
// curve: Curves.fastLinearToSlowEaseIn,
// )),
// child: child,
// );
// 缩放效果
// return ScaleTransition(
// scale: Tween(begin: 0.0,end: 1.0).animate(CurvedAnimation(
// parent: animation,
// curve: Curves.fastOutSlowIn,
// )),
// child: child,
// );
// 旋转+缩放
// return RotationTransition(
// turns: Tween(begin: 0.0,end: 1.0).animate(CurvedAnimation(
// parent: animation,
// curve:Curves.fastOutSlowIn
// )),
// child: ScaleTransition(
// scale: Tween(begin: 0.0,end: 1.0).animate(CurvedAnimation(
// parent: animation,
// curve: Curves.fastOutSlowIn,
// )),
// child: child,
// ),
// );
// 左右滑动动画
return SlideTransition(
position: Tween<Offset>(
begin: Offset(1.0,0),
end: Offset(0.0,0.0),
).animate(CurvedAnimation(
parent: animation,
curve: Curves.fastOutSlowIn,
)),
child: child,
);
}
Navigator.push(context,CSCustomRouter(CSMineAutoPwdPage(arg1:AAA
,arg2:BBB)));
网友评论