どうも、ちょげ(@chogetarou)です。
AnimationControllerのdisposeメソッドとは、何なのかを解説します。
disposeメソッド

disposeメソッドは、AnimationControllerのインスタンスを破棄するメソッドです。
通常「AnimationController」は、「initStateメソッド」でインスタンスを作ります。
_controller = AnimationController(vsync: this) //インスタンスの生成
上記の「AnimationController(vsync : this)」がインスタンスになります。
変数には、このインスタンスが入っている状態になります。
この変数に対して「dispose()」を呼び出すと、変数がインスタンスを捨てます。
_controller.dispose() //AnimationController(vsync: this)は消される
このように変数に格納されているインスタンスを消すことが出来るのが、「disposeメソッド」なのです。
disposeの使い所

AnimationControllerのdisposeメソッドは、「initState」でインスタンスを生成した際に使います。
「initState」でインスタンスを生成したら、ルールとして、最後にインスタンスを破棄しなければいけません。
なので、インスタンスが必要なくなる最後の時、つまり画面が消える段階で「disposeメソッド」を呼び出します。
画面が消える時の処理は、「dispose」内で行います。
@override
void dispose() {
super.dispose();
_controller.dispose();
}
まとめ
disposeは、AnimationControllerのインスタンスを破棄するメソッドです。
「initState」でインスタンスを作った際に、「dispose」で呼び出します。
コメント