Функция showDatePicker
Функция showDatePicker показывает диалог календаря Material.
Контекст - context,
начальная дата - initialDate,
границы - firstDate и lastDate.
Возвращает Future с DateTime или null.
Синтаксис
showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2020),
lastDate: DateTime(2030),
)
Параметры
| Параметр | Описание |
|---|---|
context |
Контекст экрана. |
initialDate |
День, выделенный при открытии. |
firstDate |
Минимально доступная дата. |
lastDate |
Максимально доступная дата. |
Пример
Давайте откроем календарь по кнопке:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DatePage()));
}
class DatePage extends StatelessWidget
{
const DatePage({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () async {
await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2024),
lastDate: DateTime(2025),
);
},
child: Text('abcde'),
),
),
);
}
}
Откроется стандартный календарь выбора даты.
Пример
Давайте покажем выбранный день на экране:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: DatePage2()));
}
class DatePage2 extends StatefulWidget
{
const DatePage2({super.key});
@override
State<DatePage2> createState() => _DatePage2State();
}
class _DatePage2State extends State<DatePage2>
{
String label = '12345';
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () async {
final d = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2024),
lastDate: DateTime(2025),
);
if (d != null) setState(() => label = '${d.day}');
},
child: Text(label),
),
),
);
}
}
После выбора на кнопке появится число дня месяца.
Смотрите также
-
функция
showDateRangePicker,
выбор двух дат -
функция
showTimePicker,
выбор времени -
виджет
CalendarDatePicker,
календарь на странице -
класс
DateTimeRange,
пара дат