[Flutter]日付を範囲選択できるカレンダーを表示するには?

Flutter

どうも、ちょげ(@chogetarou)です。

「DatePicker」で、特定の日付を選択することが出来ます。

特定の日付でなく、◯日からX日までのような範囲で選択できるカレンダーを表示するには、どうしたらいいのでしょうか?

スポンサーリンク

方法

  DateTimeRange? selectedDateRange;

  Future _pickDateRange(BuildContext context) async {
    final initialDateRange = DateTimeRange(
        start: DateTime.now(),
        end: DateTime.now().add(Duration(hours: 24 * 3)));

    final newDateRange = await showDateRangePicker(
        context: context,
        firstDate: DateTime(DateTime.now().year - 3),
        lastDate: DateTime(DateTime.now().year + 3));

    if (newDateRange != null) {
      setState(() => selectedDateRange = newDateRange);
    } else {
      return;
    }
  }

日付を範囲で選択できるカレンダーを表示するには、「DateRangePicker」を使います。

この「DateRangePicker」を表示するには、「showDateRangePicker関数」を使います。

    final newDateRange = await showDateRangePicker(
        context: context,
        firstDate: DateTime(DateTime.now().year - 3),
        lastDate: DateTime(DateTime.now().year + 3));

showDateRangePicker関数は、次の3つの引数を指定する必要があります。

  • context : コンテキスト
  • firstDate : 選択できる日付の上限(過去の方)
  • lastDate : 選択できる日付の上限(未来の方)

コメント

タイトルとURLをコピーしました