我有一个问题,比如在处理我的控制器之前,我是否需要致电_controller.stop();
我的代码:-
AnimationController _controller;
@override
void initState()
{
super.initState();
_controller = AnimationController(duration: const Duration(milliseconds: 700), vsync: this);
_controller.repeat(reverse: true);
_controller.forward();
}
这个动画是为了展示一颗心,就像我们在instagram上点赞一样,然后心会变大变小。
点击心形按钮的代码:-
onTap: ()=>controlUserLikePost(),
功能:-
controlUserLikePost()
{
_controller.reset();
_controller.forward();
}
所以,我的问题:-
@override
void dispose()
{
_controller.stop();//do i need to call it as well?
_controller.dispose();
super.dispose();// and does it matter if i dispose the controller before this line or after this line.
}
答案 0 :(得分:1)
您不必在处理之前停止它,除非您想在某个点停止动画。但是关于安全处理它,只需使用_controller.dispose()
。
但是,它必须在 super.dispose()
之前,而不是之后,这很重要。