我想点一下动画。如果用户点击一个按钮,则仅动画开始,并且在一段时间后应停止。这是我的代码:
Y
以上代码用于动画。
AnimationController _animationController;
Animation<double> _animation;
@override
initState(){
_animationController = AnimationController(
vsync: this,
duration: Duration(seconds: 3),
lowerBound: 0.5,
upperBound: 1.0,
);
_animation = CurvedAnimation(parent: _animationController, curve: Curves.bounceInOut);
_animation.addListener(() {
setState(() {});
});
_animationController.forward();
}
@override
dispose(){
_animationController.dispose();
super.dispose();
}
我喜欢上面的代码。但是,当我运行该应用程序时,无需单击该按钮即可自动启动动画。但是我只想在用户点击按钮时提供动画。当用户按下按钮时,只有动画开始;而当按下按钮时,动画应该停止。 就我而言,动画会自动开始。当用户点击按钮时,按钮应弹起。
答案 0 :(得分:2)
之所以会这样,是因为您在initState
中开始了动画:
_animationController.forward();
删除该行,直到您点击它才开始。
另外,由于Scale
本身会处理其状态,因此以下代码是不必要的:
_animation.addListener(() {
setState(() {});
});
如果您也从自己的initState
方法中删除了此方法,就可以了。
答案 1 :(得分:0)
删除_animationController.forward();从initState并将其放在GesturesDetector的ontab方法中