どうも、ちょげ(@chogetarou)です。
アニメーションをずっと繰り返す方法を紹介します。
方法
アニメーションをずっと繰り返す方法は2つあります。
repeat

1つは、repeatメソッドを使う方法です。
repeatメソッドは、1度呼び出すとアニメーションを繰り返し続けるメソッドです。
このメソッドを使うには、AnimationControllerに「.repeat()」を付けます。
_controller.repeat();
addStatusListener

もう1つは、addStatusListenerを使う方法です。
addStatusListenerは、アニメーションの状態が変わるごとに呼び出される関数です。
このメソッドを使って、アニメーションの状態が切り替わった時に、アニメーションを再開始します。
そうすれば、アニメーションを繰り返し続けられます。
また、addStatusListenerの場合は、アニメーションをした後に、逆向きのアニメーションをして、もう1度アニメーションをするというように繰り返すことが出来ます。
addStatusListenerは、AnimationController の初期化後に、関数を定義して使います。
_controller = AnimationController(
duration: Duration(seconds: 1),
vsync: this,
);
_controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
_controller.reverse();
} else if (status == AnimationStatus.dismissed) {
_controller.forward();
}
});
まとめ
アニメーションを繰り返し続けるには、AnimationControllerの「repeatメソッド」か「addStatusListener」を使います。
コメント