tsacdop-podcast-app-android/lib/util/pageroute.dart

146 lines
3.4 KiB
Dart
Raw Normal View History

2020-02-09 13:29:09 +01:00
import 'package:flutter/material.dart';
//Slide Transition
class SlideLeftRoute extends PageRouteBuilder {
final Widget page;
SlideLeftRoute({this.page})
: super(
pageBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
2020-02-09 13:29:09 +01:00
) =>
page,
transitionsBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
child,
2020-02-09 13:29:09 +01:00
) =>
SlideTransition(
position: Tween<Offset>(
begin: const Offset(1, 0),
end: Offset.zero,
).animate(animation),
child: child,
),
);
}
class SlideLeftHideRoute extends PageRouteBuilder {
final Widget page;
2020-07-30 11:28:29 +02:00
// final Widget transitionPage;
SlideLeftHideRoute({this.page})
: super(
pageBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
) =>
page,
2020-07-30 11:28:29 +02:00
// transitionDuration: Duration(milliseconds: 300),
transitionsBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
child,
2020-06-02 16:05:49 +02:00
) {
return SlideTransition(
position: Tween<Offset>(
begin: const Offset(1, 0),
end: Offset.zero,
).animate(animation),
child: child);
2020-06-02 16:05:49 +02:00
},
);
}
class SlideUptRoute extends PageRouteBuilder {
final Widget page;
SlideUptRoute({this.page})
: super(
pageBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
) =>
page,
transitionsBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
child,
) =>
SlideTransition(
position: Tween<Offset>(
begin: const Offset(0, 1),
end: Offset.zero,
).animate(animation),
child: child,
),
);
}
2020-02-09 13:29:09 +01:00
//Scale Pageroute
class ScaleRoute extends PageRouteBuilder {
final Widget page;
ScaleRoute({this.page})
: super(
pageBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
2020-02-09 13:29:09 +01:00
) =>
page,
transitionsBuilder: (
2020-07-26 12:20:42 +02:00
context,
animation,
secondaryAnimation,
child,
2020-02-09 13:29:09 +01:00
) =>
ScaleTransition(
scale: Tween<double>(
begin: 0.0,
end: 1.0,
).animate(
CurvedAnimation(
parent: animation,
curve: Curves.fastOutSlowIn,
),
),
child: child,
),
);
}
class FadeRoute extends PageRouteBuilder {
final Widget page;
FadeRoute({this.page})
: super(
pageBuilder: (
context,
animation,
secondaryAnimation,
) =>
page,
transitionsBuilder: (
context,
animation,
secondaryAnimation,
child,
) =>
FadeTransition(
opacity: Tween<double>(
begin: 0.0,
end: 1.0,
).animate(
CurvedAnimation(
parent: animation,
curve: Curves.easeInCubic,
),
),
child: child,
),
);
}