Add controller support
This commit is contained in:
parent
190a5d734b
commit
c8214efdb9
2 changed files with 29 additions and 17 deletions
|
@ -133,23 +133,20 @@ class DateTimeField extends StatelessWidget {
|
|||
}
|
||||
|
||||
if (Theme.of(context).platform == TargetPlatform.iOS) {
|
||||
final DateTime? _selectedDateTime =
|
||||
await showCupertinoPicker(context, initialDateTime);
|
||||
final DateTime? _selectedDateTime = await showCupertinoPicker(context, initialDateTime);
|
||||
if (_selectedDateTime != null) {
|
||||
onDateSelected!(_selectedDateTime);
|
||||
}
|
||||
} else {
|
||||
DateTime _selectedDateTime = initialDateTime;
|
||||
|
||||
const List<DateTimeFieldPickerMode> modesWithDate =
|
||||
<DateTimeFieldPickerMode>[
|
||||
const List<DateTimeFieldPickerMode> modesWithDate = <DateTimeFieldPickerMode>[
|
||||
DateTimeFieldPickerMode.dateAndTime,
|
||||
DateTimeFieldPickerMode.date
|
||||
];
|
||||
|
||||
if (modesWithDate.contains(mode)) {
|
||||
final DateTime? _selectedDate =
|
||||
await showMaterialDatePicker(context, initialDateTime);
|
||||
final DateTime? _selectedDate = await showMaterialDatePicker(context, initialDateTime);
|
||||
|
||||
if (_selectedDate != null) {
|
||||
_selectedDateTime = _selectedDate;
|
||||
|
@ -158,15 +155,13 @@ class DateTimeField extends StatelessWidget {
|
|||
}
|
||||
}
|
||||
|
||||
final List<DateTimeFieldPickerMode> modesWithTime =
|
||||
<DateTimeFieldPickerMode>[
|
||||
final List<DateTimeFieldPickerMode> modesWithTime = <DateTimeFieldPickerMode>[
|
||||
DateTimeFieldPickerMode.dateAndTime,
|
||||
DateTimeFieldPickerMode.time
|
||||
];
|
||||
|
||||
if (modesWithTime.contains(mode)) {
|
||||
final TimeOfDay? _selectedTime = await showMaterialTimePicker(
|
||||
context, initialDateTime,
|
||||
final TimeOfDay? _selectedTime = await showMaterialTimePicker(context, initialDateTime,
|
||||
initialEntryMode: initialTimePickerEntryMode);
|
||||
|
||||
if (_selectedTime != null) {
|
||||
|
@ -186,8 +181,7 @@ class DateTimeField extends StatelessWidget {
|
|||
|
||||
/// Launches the Material time picker by invoking [showTimePicker].
|
||||
/// Can be @[override]n to allow further customization of the picker options
|
||||
Future<TimeOfDay?> showMaterialTimePicker(
|
||||
BuildContext context, DateTime initialDateTime,
|
||||
Future<TimeOfDay?> showMaterialTimePicker(BuildContext context, DateTime initialDateTime,
|
||||
{TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial}) async {
|
||||
return showTimePicker(
|
||||
initialTime: TimeOfDay.fromDateTime(initialDateTime),
|
||||
|
@ -274,8 +268,7 @@ enum DateTimeFieldPickerMode { time, date, dateAndTime }
|
|||
/// Returns the [CupertinoDatePickerMode] corresponding to the selected
|
||||
/// [DateTimeFieldPickerMode]. This exists to prevent redundancy in the [DateTimeField]
|
||||
/// widget parameters.
|
||||
CupertinoDatePickerMode cupertinoModeFromPickerMode(
|
||||
DateTimeFieldPickerMode mode) {
|
||||
CupertinoDatePickerMode cupertinoModeFromPickerMode(DateTimeFieldPickerMode mode) {
|
||||
switch (mode) {
|
||||
case DateTimeFieldPickerMode.time:
|
||||
return CupertinoDatePickerMode.time;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue