Material Componentsで提供されている MaterialDatePickerはマテリアルデザインに準拠しておりモダンなUIを作る際に非常に便利です。
しかし、issueなどに記載されているようにタイムゾーンに依存した以下の問題があります。
※Material Componentsが1.8.0で発生しています。
- カレンダー表示時にセットした日付と表示される日付がずれる
この問題は、セットした日付が常に"UTC+0"時として扱われるのが原因のようです。
対策するにはセットする時刻に時差を追加する必要があります。
具体的なコードは以下となります。
//現在時刻を得取得する val calendar = Calendar.getInstance() //MaterialDatePickerはUTC時刻のみとなるためオフセットによって調整する val timeZone = TimeZone.getDefault() val offset = timeZone.getOffset(calendar.timeInMillis) // 日付選択ダイアログの生成(選択時刻に時差を足す) val datePicker = MaterialDatePicker.Builder.datePicker().setSelection(calendar.timeInMillis + offset).build() //ダイアログを表示する datePicker.show(childFragmentManager, "")
0 件のコメント :
コメントを投稿