freezer/lib/page_routes/scale_fade.dart

30 lines
946 B
Dart
Raw Normal View History

2023-07-29 02:17:26 +00:00
import 'package:flutter/widgets.dart';
import 'package:freezer/page_routes/basic_page_route.dart';
class ScaleFadePageRoute<T> extends BasicPageRoute<T> {
final WidgetBuilder builder;
final Curve animationCurve;
final tween = Tween<double>(begin: 0.975, end: 1.0);
ScaleFadePageRoute({
required this.builder,
this.animationCurve = Curves.linearToEaseOut,
super.transitionDuration,
super.maintainState,
super.settings,
});
2023-07-29 02:17:26 +00:00
@override
2023-07-29 02:17:26 +00:00
Widget buildPage(BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation) =>
builder(context);
@override
Widget buildTransitions(BuildContext context, Animation<double> animation,
2023-07-29 02:17:26 +00:00
Animation<double> secondaryAnimation, Widget child) {
final a = tween
.animate(CurvedAnimation(parent: animation, curve: animationCurve));
return ScaleTransition(scale: a, child: child);
2023-07-29 02:17:26 +00:00
}
}