Flutter

Flutter TextFormFieldの使い方|フォーム入力とvalidatorの基本

FlutterのTextFormFieldを初心者向けに解説します。Form、validator、保存、TextFieldとの違いを整理します。

この記事の目次
  1. この記事の結論
  2. Formで包む
  3. validatorを書く
  4. 送信時に検証する
  5. 実装後に確認すること
  6. よくあるつまずき
  7. 次に読む記事
  8. まとめ

TextFormFieldは、Formと組み合わせて入力チェックをしやすいTextFieldです。

この記事の結論

入力チェックが必要なフォームでは、TextFieldよりTextFormFieldを使うと整理しやすくなります。

Formで包む

Formの中にTextFormFieldを置きます。

final formKey = GlobalKey<FormState>();

Form(
  key: formKey,
  child: TextFormField(
    decoration: const InputDecoration(labelText: "メール"),
  ),
)

validatorを書く

未入力や形式エラーを返します。

TextFormField(
  validator: (value) {
    if (value == null || value.isEmpty) {
      return "入力してください";
    }
    return null;
  },
)

送信時に検証する

validateがtrueなら次の処理へ進みます。

if (formKey.currentState!.validate()) {
  print("送信できます");
}

実装後に確認すること

  • 画面上で余白や入力が意図通りか確認したか
  • 小さい画面で崩れないか確認したか
  • 状態管理や画面遷移の責務を混ぜすぎていないか
  • 関連するWidgetとの使い分けを説明できるか

よくあるつまずき

  • 便利なWidgetに役割を詰め込みすぎる
  • 固定サイズや固定余白だけで作る
  • 入力値の破棄やバリデーションを忘れる
  • ListViewやGridViewをColumn内で高さ指定なしに置く

次に読む記事

まとめ

Flutter TextFormFieldはFlutter UIを作るうえでよく使う基本です。最小コードで動きを確認し、関連Widgetと使い分けながら画面を組み立てましょう。