【 Flutter 】Flutter を 基礎 から 学習 ( Flutterの内部構造 ) part222 ライフサイクル
「 基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は Flutterの内部構造 ( part222 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( Flutterの内部構造 ) part221 ライフサイクル
引き続き、ライブラリについて学びます。
ライフサイクル
StatefulWidget
StateのsetStateメソッド
StatfulWidget
クラスの真骨頂!と本書では記述されるほど大事なメソッドになります。
setState
メソッドが呼び出された後build
メソッドが実行され、画面が再描画する仕組みとなっています。
本書では以下のような謎な文章があります。
自分では
setState()
を呼び出さず、また自身が作成するウィジェットをすべてStatelessWidget
クラスで作ることも可能です。その場合は、それらのウィジェットが
StatefulWidget
クラスを継承していて、内部でsetState()
メソッドを読んでいるのです。つまり、
State
クラス内の値を変更したい場合は、必ずsetState()
メソッドが呼ばれています。
最初の1文はりかいできますが2文目以降はどういうことでしょうか。
StatelessWidget
はStatefulWidget
の子供・・・という解釈であっているでしょうか。
setState
メソッド内では引数で渡された関数を実行したのちElement
クラスのmarkNeedsBuild
メソッドが呼び出されています。
markNeedsBuild
内ではエレメントツリーに追加されているか確認ののち、リビルドが必要なのかどうか判断します。
必要な場合はBuildOwner
クラスのscheduleBuildFor
メソッドを呼び出しています。
最後に
setState
メソッドの旅はまだ続くようです。
力の入れ方がここだけ異常です(笑
ディスカッション
コメント一覧
まだ、コメントがありません