【发布时间】:2020-10-24 12:11:19
【问题描述】:
我第一次尝试为 Navigation.push 实现自定义动画。这是我的代码:
onGenerateRoute: (routeSettings) {
return PageRouteBuilder<dynamic>(
settings: routeSettings,
pageBuilder: (context, Animation<double> animation,
Animation<double> secondaryAnimation) {
switch (routeSettings.name) {
case WelcomeScreen.id:
return WelcomeScreen();
case LoginScreen.id:
return LoginScreen();
case RegistrationScreen.id:
return RegistrationScreen();
case HomeScreen.id:
return HomeScreen();
default:
return null;
}
},
transitionDuration: Duration(milliseconds: 200),
transitionsBuilder: (context, Animation<double> animation,
Animation<double> secondaryAnimation, Widget child) {
animation =
CurvedAnimation(curve: Curves.easeOut, parent: animation);
return SlideTransition(
position: Tween(begin: Offset(1.0, 0.0), end: Offset(0.0, 0.0))
.animate(animation),
child: child,
);
});
},
问题是如果我将动画持续时间设置为例如。 2 秒 Push Animation 遵循该持续时间,但 Pop Animation 没有。如何确保我的 Pop Animation 遵循相同的持续时间?
【问题讨论】: