向后导航时的颤振动画



在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 ;

会的。

最新更新