import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; //this is an external package for formatting date and time
class DatePicker extends StatefulWidget {
@override
_DatePickerState createState() => _DatePickerState();
}
class _DatePickerState extends State<DatePicker> {
DateTime _selectedDate;
//Method for showing the date picker
void _pickDateDialog() {
showDatePicker(
context: context,
initialDate: DateTime.now(),
//which date will display when user open the picker
firstDate: DateTime(1950),
//what will be the previous supported year in picker
lastDate: DateTime
.now()) //what will be the up to supported date in picker
.then((pickedDate) {
//then usually do the future job
if (pickedDate == null) {
//if user tap cancel then this function will stop
return;
}
setState(() {
//for rebuilding the ui
_selectedDate = pickedDate;
});
});
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
RaisedButton(child: Text('Add Date'), onPressed: _pickDateDialog),
SizedBox(height: 20),
Text(_selectedDate == null //ternary expression to check if date is null
? 'No date was chosen!'
: 'Picked Date: ${DateFormat.yMMMd().format(_selectedDate)}'),
],
);
}
}
8条答案
按热度按时间x7yiwoj41#
一个简单的应用程序展示了它的用途:
和一个 dart 垫:
https://dartpad.dev/e5a99a851ae747e517b75ac221b73529
d8tt03nd2#
Flutter提供了
showDatePicker
函数来实现这一点,它是flutter材料库的一部分。您可以在showDatePicker上找到完整的文档。
您还可以在此处找到已实现的示例:Date and Time Picker
js81xvg63#
简单的方法是使用CupertinoDatePicker类:
首先导入其构建在Flutter中的 Package :
然后只需在表单中添加此小部件:
结果将如下图所示:
此外,您还可以将模式更改为(dateAndTime,time)...例如,对于dateAndTime模式:
结果将如下图所示:
i7uq4tfw4#
首先,您需要创建一个变量。在该变量中,您可以按如下方式存储所选日期:
**第二个选项:**通过使用https://pub.dev/packages/date_time_picker这个库,可以使用另一个选项。您可以在小部件树中使用这个库,并将选取的日期或时间存储在一个变量中,作为字符串:
首先,在pubspec.yaml中添加包,然后点击get packages。下面只给出了一个日期选择演示,详细的实现可以在给定的包url中找到。
xnifntxz5#
对于时间选择器-
在类级别声明此变量
并调用此方法:-
fjnneemd6#
这是一个现代化和倾向性的日期时间选择器,适用于Android和iOS。
6jygbczu7#
ulydmbyx8#
这也是一个很好的办法:
这来自https://fluttercentral.com/Articles/Post/1199/Flutter_DatePicker_Example