Возвращаемый тип «CupertinoDatePicker» не является » Будущим», как того требует контекст закрытия

#android #ios #flutter #datetime #dart

Вопрос:

Я пытаюсь создать адаптивный выбор даты и времени для Android и Ios,

 DateTimeField(
    controller: date,
    focusNode: _focusNodeDate,
    validator: (value){
        if(value == null){
            return 'Ce champ est requis';
        };
        return null;
    },
    decoration: InputDecoration(
        labelText: 'Date de naissance',
        labelStyle: TextStyle(
            fontSize: getProportionateScreenWidth(20),
            color: Colors.grey,
        ),
    ),
    format: format,
    onShowPicker: (context, currentValue) {
        if(Platform.isAndroid){
            return showDatePicker(
                context: context,
                firstDate: DateTime(1900),
                initialDate: currentValue ?? DateTime.now(),
                lastDate: DateTime(2100)
            );
        } else if(Platform.isIOS) {
            return CupertinoDatePicker(onDateTimeChanged: (datetime){});
        }
    },
)
 

и я получаю эту ошибку

ошибка: Возвращаемый тип «CupertinoDatePicker» не является «Будущим», как того требует контекст закрытия. (return_of_invalid_type_from_closure в [app_isophro] libaddProfileaddprofile.dart:232)

Ответ №1:

Вам нужно обернуть свой виджет CupertinoDatePicker чем-то, что показывает его и возвращает значение, например:

 showModalBottomSheet<DateTime>(
      context: context,
      builder: (context) => CupertinoDatePicker(onDateTimeChanged: (datetime){}))
``
 

Комментарии:

1. как добавить кнопку для закрытия модального окна, например, кнопку «готово»

2. flutteragency.com/…