slideTransition method
PageRouteBuilder
slideTransition({
- required Widget screen(
- BuildContext ctx,
- Animation<
double> animation, - Animation<
double> secondaryAnimation
- SlidePosition slidePosition = SlidePosition.fromBottom,
- Duration transitionDuration = const Duration(milliseconds: 300),
- Duration reverseTransitionDuration = const Duration(milliseconds: 300),
Implementation
PageRouteBuilder slideTransition({
required Widget Function(
BuildContext ctx,
Animation<double> animation,
Animation<double> secondaryAnimation,
) screen,
SlidePosition slidePosition = SlidePosition.fromBottom,
Duration transitionDuration = const Duration(milliseconds: 300),
Duration reverseTransitionDuration = const Duration(milliseconds: 300),
}) {
var begin = Offset.zero;
const end = Offset.zero;
switch (slidePosition) {
case SlidePosition.fromBottom:
begin = const Offset(0, 1);
break;
case SlidePosition.fromTop:
begin = const Offset(0, -1);
break;
case SlidePosition.fromLeft:
begin = const Offset(-1, 0);
break;
case SlidePosition.fromRight:
begin = const Offset(1, 0);
break;
default:
begin = Offset.zero;
break;
}
final tween = Tween(begin: begin, end: end);
return PageRouteBuilder(
pageBuilder: screen,
transitionDuration: transitionDuration,
reverseTransitionDuration: reverseTransitionDuration,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
final offsetAnimation = animation.drive(tween);
return SlideTransition(position: offsetAnimation, child: child);
},
);
}