在Flutter中导航时,我使用带有漂亮小动画的PageRouteBuilder
。我真的很喜欢Curves.elasticOut
,但当我按下手机上的"后退"按钮时,我希望过渡"不同"。目前,它只是使用应用的动画,只是向后播放。当Curves.elasticOut
向后播放时,这似乎很不自然,好像屏幕需要跳跃才能跳回前一个屏幕。
有没有一种方法可以在向后导航时使用Curves.elasticIn
?
使用示例:
transitionDuration: Duration(milliseconds: 5000),
pageBuilder: (context, animation, secondaryAnimation) => page,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
var begin = Offset(1.0, 0.0);
var end = Offset.zero;
var curve = Curves.elasticIn;
var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
print("primary: ${animation}");
return SlideTransition(
position: animation.drive(tween),
child: child,
);
},
);
transitionBuilder
中的参数animation
包含返回AnimationStatus
的属性status
。
一个简单的
var curve = animation.status == AnimationStatus.reverse ? Curves.elasticIn : Curves.elasticOut ;
会的。