createRoute method
Route
createRoute
(- {Widget destination,
- Curve curve: Curves.ease,
- AnimType animType: AnimType.slideStart,
- int duration: DEFAULT_TRANSITION_DURATION}
)
Implementation
static Route createRoute({Widget destination, Curve curve = Curves.ease, AnimType animType = AnimType.slideStart, int duration = DEFAULT_TRANSITION_DURATION} ){
return PageRouteBuilder(
pageBuilder: (context, animation, anotherAnimation) {
return destination;
},
transitionDuration: Duration(milliseconds: duration),
transitionsBuilder:
(context, animation, anotherAnimation, child) {
animation = CurvedAnimation(
curve: curve, parent: animation);
switch(animType){
case AnimType.fade:
return Align(
child: FadeTransition(
opacity: animation,
child: child,
),
);
case AnimType.slideBottom:
return SlideTransition(
position: Tween(
begin: Offset(0.0, 1.0),
end: Offset(0.0, 0.0))
.animate(animation),
child: child,
);
break;
case AnimType.slideStart:
return SlideTransition(
position: Tween(
begin: Offset(1.0, 0.0),
end: Offset(0.0, 0.0))
.animate(animation),
child: child,
);
break;
case AnimType.size:
return Align(
child: SizeTransition(
sizeFactor: animation,
child: child,
axisAlignment: 0.0,
),
);
break;
case AnimType.rotate:
return RotationTransition(
turns: animation,
child: child,
);
default:
return SlideTransition(
position: Tween(
begin: Offset(1.0, 0.0),
end: Offset(0.0, 0.0))
.animate(animation),
child: child,
);
}
});
}