import 'package:flutter/material.dart';
class AnimatedNavigation {
static push({
required BuildContext context,
required Widget page,
}) {
return Navigator.of(context).push(
PageRouteBuilder(
transitionDuration: const Duration(milliseconds: 250),
pageBuilder: (context, animation, secondaryAnimation) => page,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
const begin = 0.0;
const end = 1.0;
final tween = Tween(begin: begin, end: end);
final offsetAnimation = animation.drive(tween);
return FadeTransition(
opacity: offsetAnimation,
child: child,
);
},
),
);
}
static pushAndRemoveUntil({
required BuildContext context,
required Widget page,
}) {
return Navigator.of(context).pushAndRemoveUntil(
PageRouteBuilder(
transitionDuration: const Duration(milliseconds: 250),
pageBuilder: (context, animation, secondaryAnimation) => page,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
const begin = 0.0;
const end = 1.0;
final tween = Tween(begin: begin, end: end);
final offsetAnimation = animation.drive(tween);
return FadeTransition(
opacity: offsetAnimation,
child: child,
);
},
),
(route) => false,
);
}
}
Comments