Виджет CalendarDatePicker
Виджет CalendarDatePicker показывает сетку месяца.
Выбранный день - initialDate,
границы - firstDate и lastDate,
смена даты - onDateChanged.
В диалогах его использует showDatePicker.
Синтаксис
CalendarDatePicker(
initialDate: DateTime.now(),
firstDate: DateTime(2020),
lastDate: DateTime(2030),
onDateChanged: (DateTime value) {},
)
Параметры
| Параметр | Описание |
|---|---|
initialDate |
Выделенный день при построении. |
firstDate |
Самая ранняя дата. |
lastDate |
Самая поздняя дата. |
onDateChanged |
Новая дата после нажатия на день. |
Пример
Давайте встроим календарь в Scaffold:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: CalDemo()));
}
class CalDemo extends StatefulWidget
{
const CalDemo({super.key});
@override
State<CalDemo> createState() => _CalDemoState();
}
class _CalDemoState extends State<CalDemo>
{
DateTime day = DateTime.now();
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Column(
children: [
Text('${day.day}.${day.month}'),
CalendarDatePicker(
initialDate: day,
firstDate: DateTime(2024),
lastDate: DateTime(2025),
onDateChanged: (d) => setState(() => day = d),
),
],
),
);
}
}
Нажатие на день обновит текст над календарём.
Пример
Давайте зафиксируем initialDate:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: CalendarDatePicker(
initialDate: DateTime(2024, 6, 15),
firstDate: DateTime(2024),
lastDate: DateTime(2024, 12, 31),
onDateChanged: (d) {},
),
),
),
);
}
Календарь откроется на 15 июня 2024.
Смотрите также
-
функция
showDatePicker,
диалог с календарём -
функция
showDateRangePicker,
выбор диапазона -
класс
DateTimeRange,
пара дат -
класс
TimeOfDay,
время суток