世界最大級のオンライン学習サービス「Udemy」のセール状況はこちら

【Flutter】TextEditingControllerとは?

この記事はこんな人におすすめ!
  • TextFieldなどで使用されるTextEditingControllerの役割について知りたい

今回はTextFieldTextFormFieldなどで使用されるTextEditingControllerとは何かについて解説していきます。

目次

TextEditingControllerとは?

TextEditingControllerは入力フォーム(テキストフィールド)でユーザーによって入力された値をリスナーし値を制御するのが主な役割です。

入力フォームの値の変更を監視する

TextEditingControllerTextFieldTextFormFieldcontrollerの引数にすることで入力フォームの値を監視し、値の変化をスクリーンに反映します。

この際TextEditingControllercontrollerの引数に直接渡すのではなく、定数として定義したものを渡すようにします。

class _MyHomePageState extends State<MyHomePage> {
  final _myController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Flutter')),
      body: TextField(
        controller: _myController,
      ),
    );
  }
}

TextFieldで初期値を設定できる

TextFieldで使用されるTextEditingControllerを定数として定義する際にtextを使用することで初期値を設定できます。

final _myController = TextEditingController(text: 'Hello World');

TextFormFieldの場合はTextEditingControllerを使用せず、initialValueで初期値を設定できます。

TextFormField(
  initialValue: 'Hello World',
)

入力フォームの値を取得

入力フォームの現在の値はTextEditingControllertextプロパティで取得できます。

print(_myController.text);

入力フォームの値を更新・消去できる

入力フォームの値を動的にプログラムで更新したり消去したりできます。

_myController.text = 'New Hello World';
_myController.clear();

参考サイト

目次