Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmWnDP 101 of 125 menu
◀ ▶

Выбор даты showDatePicker в Flutter

Готовый календарь Material вызывают функцией showDatePicker. Она возвращает Future<DateTime?>: если пользователь нажал «ОК», приходит дата; при отмене - null.

Обязательны context, initialDate, firstDate и lastDate - границы диапазона. После await обновите экран через setState, как после любого асинхронного действия:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: DatePickPage())); } class DatePickPage extends StatefulWidget { const DatePickPage({super.key}); @override State<DatePickPage> createState() => _DatePickPageState(); } class _DatePickPageState extends State<DatePickPage> { DateTime? picked; Future<void> chooseDate() async { final now = DateTime.now(); final value = await showDatePicker( context: context, initialDate: picked ?? now, firstDate: DateTime(now.year - 1), lastDate: DateTime(now.year + 1), ); if (!mounted || value == null) return; // widget may have left the tree setState(() { picked = value; }); } @override Widget build(BuildContext context) { final label = picked == null ? 'No date selected' : '${picked!.day}.${picked!.month}.${picked!.year}'; return Scaffold( appBar: AppBar(title: const Text('Date')), body: Center( child: Column( mainAxisSize: MainAxisSize.min, children: [ Text(label, style: const TextStyle(fontSize: 20)), const SizedBox(height: 16), ElevatedButton( onPressed: chooseDate, child: const Text('Pick a date'), ), ], ), ), ); } }

Ограничьте выбор только текущим годом: firstDate - 1 января, lastDate - 31 декабря. Покажите под кнопкой текст 'Due: ...' после успешного выбора.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить