aboutsummaryrefslogtreecommitdiff
path: root/lib/widgets/page_route_transitions.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets/page_route_transitions.dart')
-rw-r--r--lib/widgets/page_route_transitions.dart65
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,
+ ),
+ );
+}