61 lines
1.6 KiB
Dart
61 lines
1.6 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
//Slide Transition
|
||
|
class SlideLeftRoute extends PageRouteBuilder {
|
||
|
final Widget page;
|
||
|
SlideLeftRoute({this.page})
|
||
|
: super(
|
||
|
pageBuilder: (
|
||
|
BuildContext context,
|
||
|
Animation<double> animation,
|
||
|
Animation<double> secondaryAnimation,
|
||
|
) =>
|
||
|
page,
|
||
|
transitionsBuilder: (
|
||
|
BuildContext context,
|
||
|
Animation<double> animation,
|
||
|
Animation<double> secondaryAnimation,
|
||
|
Widget child,
|
||
|
) =>
|
||
|
SlideTransition(
|
||
|
position: Tween<Offset>(
|
||
|
begin: const Offset(1, 0),
|
||
|
end: Offset.zero,
|
||
|
).animate(animation),
|
||
|
child: child,
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
//Scale Pageroute
|
||
|
class ScaleRoute extends PageRouteBuilder {
|
||
|
final Widget page;
|
||
|
ScaleRoute({this.page})
|
||
|
: super(
|
||
|
pageBuilder: (
|
||
|
BuildContext context,
|
||
|
Animation<double> animation,
|
||
|
Animation<double> secondaryAnimation,
|
||
|
) =>
|
||
|
page,
|
||
|
transitionsBuilder: (
|
||
|
BuildContext context,
|
||
|
Animation<double> animation,
|
||
|
Animation<double> secondaryAnimation,
|
||
|
Widget child,
|
||
|
) =>
|
||
|
ScaleTransition(
|
||
|
scale: Tween<double>(
|
||
|
begin: 0.0,
|
||
|
end: 1.0,
|
||
|
).animate(
|
||
|
CurvedAnimation(
|
||
|
parent: animation,
|
||
|
curve: Curves.fastOutSlowIn,
|
||
|
),
|
||
|
),
|
||
|
child: child,
|
||
|
),
|
||
|
);
|
||
|
}
|