我試圖在動畫完成後執行動作。我嘗試添加一個statusListener,但這不適合我。我的代碼如下所示:試聽動畫以完成
@override
void initState() {
super.initState();
_controller = new AnimationController(
duration: new Duration(milliseconds: 500),
vsync: this,
)..addStatusListener((AnimationStatus status) {
print("Going");
if (status.index == 3 && spins > 0) { // AnimationStatus index 3 == completed animation
_controller.duration = new Duration(milliseconds: speed - 50);
_controller.forward(from: _controller.value == null ? 0.0 : 1 - _controller.value);
spins--;
print(speed);
}
});
}
print(Going);
永遠不會執行,但我的動畫結束。出了什麼問題?
/// ---編輯--- ///
我使用的是AnimatedBuilder
的那部分代碼如下所示:
child: new AnimatedBuilder(
animation: _controller,
child: new Image.network(widget.url),
builder: (BuildContext context, Widget child) {
return new Transform.rotate(
angle: _controller.value * 2.0 * math.PI,
child: child,
);
},
),
我忘了說我正在使用'AnimatedBuilder'(我編輯了我的文章並添加了一些代碼)。我認爲我不能將你的方法應用到我寫的東西上,還有其他想法嗎? –