Do it! Flutter bookで欲しいアプリケーションを開発(03.fluth内部構造表示)


インストールとコメント:https://flutter-ko.dev/docs
簡単な例を試してみると、
Dart Pad : https://dartpad.dev/?
XcodeとAndroid Studioはiosとandroidシミュレータを同時に使用するためにインストールする必要があります.(Mac OSベース)
ドキュメント化の仕事はとてもきれいだと思います.

setState()


画面をリフレッシュするにはsetState()関数で行う必要があります.
child: Switch(
	value: switchValue,
    onChanged: (value) {
		setState(() {
			print(value);
            switchValue = value;
        });
    }),
...
ユーザーがスイッチを押すと、onChangedイベントが発生します.
(onChardedイベントは...)値を変更すると、次の文のイベントが実行されます.)
変数の値は変更されましたが、実行中のアプリケーション通知画面->setState()関数の使用を更新する別の関数が必要です.

注意!


本の「RaiseButton」はfluf 2.0バージョンが導入されてから使用されなくなった.逆に「ElevatedButton」を使います.
では、ボタンの色を指定する例では、どうすればいいのでしょうか....という疑問がありました.
parameter:styleでやる気がする...
わかりませんが、探してみると、styleFromがありました.
primaryはbackgroundColorとして親切に表示されます:)
style: ElevatedButton.styleFrom(primary: _color),
使用すれば色を変えることができます.


ああ...ボタンをクリックするたびに安全に色とテキストが変わりました!

3-2コンポーネントのライフサイクルについて


どうしたんですか.特定の場合、動作を停止する必要がある場合があります.
->動作やリソースを自然かつ効率的に管理できます.
ステータスレスウィジェットは更新できませんので、ライフサイクルX
ステータスウィジェットにはライフサイクルがあり、10段階に分かれています.

  • createState()関数
    StatefulWidgetクラスを継承するクラスは、この関数を呼び出す必要があります.
    ->別のライフサイクル関数を含むStateクラスを返す

  • mounted == true
    createState()関数を呼び出してステータスを作成すると、マウント属性がtrueに変更されます.
    ->制御コンポーネント用のbuildContextクラスにアクセスできます.
    -->setState()関数を使用できます.
  • if (mounted) {
    	setState()
    }
    使用して検査を行うと、より安全に使用できます.

  • 初期化コンポーネントのinitState()関数
    部品を初期化するときに一度だけ呼び出されます.主に、データ・リストを作成するか、必要なデータを最初に交換するときに呼び出されます.

  • 依存性の変更時に呼び出されるdidChangeDependencies()関数
    コンポーネントのinitState()関数を初期化した直後に呼び出される関数.
    データに依存する部品の場合は、表示前に呼び出す必要があります.
    主に継承された部品を使用する場合、継承者によって変更されると呼び出されます.
  • 好奇心がある。


    依存性...の変更…?なぜデータに依存する部品は必ず呼び出さなければならないのですか?
    相続人に変更されるってどういう意味ですか…?
    簡単に片付けるとボリュームが多すぎて….
    後で整理したリンクを載せます.
    注意:https://kotlinworld.com/64#%EC%-D%--%EC%A-%B-%EC%--%B-%EC%-D%B-%EB%-E%--%--%EB%AC%B-%EC%--%--%EC%-D%B-%EB%A-%B-%--%EC%--%B-%EB%--%BB%EA%B-%-C%--%ED%--%B-%EA%B-%B-%--%EA%B-%--%EB%-A%A-%ED%--%-C%EA%B-%--%-F

  • 画面に表示されるbuild関数
    この関数はWidgetを返します.つまり、コンポーネントをスクリーンにレンダリングします.
    画面に表示されるのは、build()関数で作成してWidgetに戻る場合のみです.

  • WidgetのdidUpdateWidget()関数の更新
    親コンポーネントまたはデータが変更され、コンポーネントを更新する必要がある場合に呼び出されます.InitState()のイベントがコンポーネントを変更した場合は、didUpdateWidget()関数を呼び出してWidget updateを実行できます.
    ->initState()関数