[Flutter]Animationcontrollerの「vsync not defined」を解決するには?

Flutter

どうも、ちょげ(@chogetarou)です。

AnimationControllerのインスタンスを作ろうとした際に、「 vsync not defined」が出る場合があります。

もしくは、「this」でつまづく場合もあります。

この記事では、これらを解決する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

これらを解決するには、まず「State」のクラス名の後ろに以下のコードを追加します。

class _SampleState extends State<Sample> with SingleTickerProviderStateMixin {
・・・
}

「with SingleTickerProviderStateMixin」は、AnimationControllerを使う上では必須のものです。

あとは、AnimationControllerの引数に「vsync : this」を指定します。

    _controller = AnimationController(vsync: this);

これでエラーが解決されるはずです。

「vsync not defined」は、引数「vsync」を定義してないせいで出るエラーです。

「vsync」は、AnimationControllerの必須なので、定義しないといけないのです。

また、「vsync」に指定するのは、「SingleTickerProviderStateMixin」の「this」となっています。

なので、Stateで「with SingleTickerProviderStateMixin」をクラス名の後ろに付けるのです。

コメント

タイトルとURLをコピーしました