diff options
Diffstat (limited to 'lib/widgets/page_route_transitions.dart')
-rw-r--r-- | lib/widgets/page_route_transitions.dart | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/widgets/page_route_transitions.dart b/lib/widgets/page_route_transitions.dart new file mode 100644 index 0000000..8491555 --- /dev/null +++ b/lib/widgets/page_route_transitions.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; + +class SlideFromLeftRoute extends PageRouteBuilder { + final Widget child; + + SlideFromLeftRoute({required this.child}) + : super( + transitionDuration: Duration(milliseconds: 300), + pageBuilder: (BuildContext _, Animation<double> __, Animation<double> ___) => child, + transitionsBuilder: (BuildContext _, Animation<double> animation, Animation<double> __, Widget child) => SlideTransition( + position: Tween<Offset>( + begin: Offset(-1, 0), + end: Offset.zero, + ).animate(CurvedAnimation(parent: animation, curve: Interval(0.00, 1.00, curve: Curves.ease))), + child: child, + ), + ); +} + +class SlideFromRightRoute extends PageRouteBuilder { + final Widget child; + + SlideFromRightRoute({required this.child}) + : super( + transitionDuration: Duration(milliseconds: 300), + pageBuilder: (BuildContext _, Animation<double> __, Animation<double> ___) => child, + transitionsBuilder: (BuildContext _, Animation<double> animation, Animation<double> __, Widget child) => SlideTransition( + position: Tween<Offset>( + begin: Offset(1, 0), + end: Offset.zero, + ).animate(CurvedAnimation(parent: animation, curve: Interval(0.00, 1.00, curve: Curves.ease))), + child: child, + ), + ); +} + +class SlideFromBottomRoute extends PageRouteBuilder { + final Widget child; + + SlideFromBottomRoute({required this.child}) + : super( + transitionDuration: Duration(milliseconds: 300), + pageBuilder: (BuildContext _, Animation<double> __, Animation<double> ___) => child, + transitionsBuilder: (BuildContext _, Animation<double> animation, Animation<double> __, Widget child) => SlideTransition( + position: Tween<Offset>( + begin: Offset(0, 1), + end: Offset.zero, + ).animate(CurvedAnimation(parent: animation, curve: Interval(0.00, 1.00, curve: Curves.ease))), + child: child, + ), + ); +} + +class FadeRoute extends PageRouteBuilder { + final Widget child; + + FadeRoute({required this.child}) + : super( + transitionDuration: Duration(milliseconds: 300), + pageBuilder: (BuildContext _, Animation<double> animation, Animation<double> __) => FadeTransition( + opacity: animation, + child: child, + ), + ); +} |