Flutter DatePickerでTextFormFieldに入力する方法

環境
Windows11 pro 64bit
Flutter 3.3.7

構文
TextFormFieldに設定したTextEditinControllerのtextプロパティに、選択した日付を代入します。
DatePickerでTextFormFieldに入力できるようになります。

操作方法
1.TextEditingControllerの変数を用意します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
final textEditingController = TextEditingController();
final textEditingController = TextEditingController();
final textEditingController = TextEditingController();

2.変数をTextFormFieldに設定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
TextFormField(
controller: textEditingController,
)
TextFormField( controller: textEditingController, )
TextFormField(
     controller: textEditingController,
 )

3.TextFormFieldをDatePickerで入力するための関数を作成します。

サンプルコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Future _getDate(BuildContext context) async {
final initialDate = DateTime.now();
final newDate = await showDatePicker(
context: context,
initialDate: initialDate,
firstDate: DateTime(DateTime.now().year - 5),
lastDate: DateTime(DateTime.now().year + 5),
);
if (newDate != null) {
     //選択した日付をTextFormFieldに設定する
textEditingController.text = newDate.toString();
} else {
return;
}
}
Future _getDate(BuildContext context) async { final initialDate = DateTime.now(); final newDate = await showDatePicker( context: context, initialDate: initialDate, firstDate: DateTime(DateTime.now().year - 5), lastDate: DateTime(DateTime.now().year + 5), ); if (newDate != null) {      //選択した日付をTextFormFieldに設定する textEditingController.text = newDate.toString(); } else { return; } }
 Future _getDate(BuildContext context) async {
    final initialDate = DateTime.now();

    final newDate = await showDatePicker(
      context: context,
      initialDate: initialDate,
      firstDate: DateTime(DateTime.now().year - 5),
      lastDate: DateTime(DateTime.now().year + 5),
    );

    if (newDate != null) {
     //選択した日付をTextFormFieldに設定する
      textEditingController.text = newDate.toString();
    } else {
      return;
    }
  }

 

Flutter

Posted by arkgame