Flutterで日付と時間を同時選択させるためのDatetime Pickerを使う手順

Photo by Djim Loic on Unsplash
はじめに
スマートフォンのアプリでよく日付や時間を選択するような場合があると思います。この記事では、Flutterで日付と時間の両方を同時にユーザに選択するためのDatetime Pickerの実装手順について簡単にまとめます。なお、もし時間の指定は不要で日付のみの選択が必要な場合は、Flutterにデフォルトで用意されているshowDatePicker
をそのまま使用するのが良いです。また、showDatePicker
に加えてshowTimePicker
が公式で用意されているので、こちらを組み合わせれば日時の選択をさせるためのUIを作成できますが、この記事では何かしらの理由で日付と時間の選択をユーザに同時にさせたい場合を想定しています。
できるようになること
以下のGIF画像のように、ボタンをタップすることで日時を選択できるDatetime Pickerを表示します。
このデモのコードは以下のGitHubにあげてあります。
前提と環境
以下の通りです。
- Flutter 1.5.4-hotfix.2
- Dart 2.3.0
使用するパッケージについて
Flutterでは、日付を選択するためのshowDatePicker
と時間を選択させるためのshowTimePicker
がそれぞれ公式で用意されていますが、調べたところ2019年5月時点では日付と時間を同時に選択させるような公式パッケージはないようです。しかしいくつか代わりのパッケージが公開されています。ここではその内の1つであるflutter_datetime_picker
を使用します。以下がこのパッケージの公式ページになります。
A flutter date time picker inspired by flutter-cupertino-date-picker
また、日付のフォーマットを指定するためにintl
というパッケージも使用します。
This package provides internationalization and localization facilities, including message translation, plurals and genders, date/number formatting and parsing, and bidirectional text.
flutter_datetime_pickerとintlをインストールする
以下のようにpubspec.yaml
に追記して保存します。
また、main.dart
などでimportします。
以上でDatetime Pickerを使うための準備は完了です。
Datetime Pickerを使用する
使い方はとても簡単で、例えばボタンのクリックでDatetime Pickerを呼び出したい場合は以下のようにonPressed
にDatetime Pickerを渡します。
以下のコードは冒頭に載せたデモと同じ動作をするものです。なお、コードの大半はFlutterのプロジェクト作成時に生成されるコードそのものです。
上記のコードを見てわかるとおり、DatePicker:showDateTimePicker
でDatetime Pickerを生成しています。もし時間指定は不要で日付のみ指定するDate Pickerが必要な場合は、以下のようにshowDatePicker
とします。
なお、冒頭でも説明したように、もし時間の選択は不要な場合は、公式のshowDatePicker
が用意されています。
ロケールで日本語を選択した場合
ロケールの設定で日本語の指定も可能です。
ただし、見た目は以下の様になります。月だけが漢字となり少々違和感があるかもしれません。
まとめ
日付と時間の選択を同時に行わせたい場合には便利です。
関連記事
- 公開日:2022/08/30 更新日:2022/08/30
FlutterアプリでAndroid StudioのGenerate Signed Bundle/APKが表示されない時の対処法
FlutterアプリをGoogle Play Storeに公開するためにAndroid Studioを使ってアップロード鍵を生成しようとしたところ、公式ドキュメントに書かれている「Build」→「Generate Signed Bundle/APK」というメニューが見つかりませんでした。この解決法をメモします。
- 公開日:2022/08/15 更新日:2022/08/15
webview_flutterを使ってFlutterアプリ内でWebページを開く
FlutterでURLをタップした時にアプリ内でそのURLのWebページを開く方法についてまとめます。この記事では、Flutter公式のプラグインであるwebview_flutterを使用した実装例をメモします。
- 公開日:2022/08/14 更新日:2022/08/14
FlutterでURLへのリンクを作成してアプリ外でWebページを開く
FlutterでURLをタップしたらブラウザが開いてそこでURL先を表示したい場合があります。この記事では、Flutter公式のプラグインを使用した実装例をメモします。
- 公開日:2019/12/03 更新日:2019/12/03
Android App Bundleを実機にインストールして試すために使うbundletoolの使い方
Flutterなどで開発したAndroidアプリを自分の手元にある実機にインストールして試したい場合はbundletoolを使用するよう公式ドキュメントに記載されています。ただ、常識であるためなのか詳しい使い方が書かれておらず戸惑ったのでメモしておきます。
- 公開日:2019/12/02 更新日:2019/12/02
Flutterでアプリの復帰やサスペンドを検出して処理を実行する
Flutterで開発したアプリが復帰した時やサスペンドした時を検出して任意の処理を実行するための手順をまとめます。
開発アプリ
