DateTImePickerFormField Не удаляет клавиатуру после выбранной даты - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь создать валидатор поля возраста, используя пакет DateTimePickerFormField во флаттере.Я могу заставить календарь появляться, но я не могу отклонить его после выбора даты.

Я проверил на сайте пакетов youtube и flutter, и я не уверен, где я ошибся здесь

Widget _buildDateField(BuildContext context) {
    final _ageFocus = FocusNode();
  final dateFormat = DateFormat("mm-dd-yyyy");

  var _formKey = GlobalKey<FormState>();
  return    Container(
                width: 120,
                child: Column(
                  children: <Widget>[
                    Form(
                      key: _formKey,
                      child: Container(
                        child: DateTimePickerFormField(
                          dateOnly: true,
                          format: dateFormat,
                          validator: (val) {
                            if (val != null) {
                              return null;
                            } else {
                              return 'Date Field is Empty';
                            }
                          },
                          decoration: InputDecoration(
                              hintText: 'Age', icon: Icon(Icons.calendar_today)),
                          style: TextStyle(fontWeight: FontWeight.bold),
                          initialDate: DateTime.now(),
                          onSaved: (value) {
                            debugPrint(value.toString());
                            print(value.toString());
                          },
                        ),
                      ),
                    ),
                     RaisedButton(
          onPressed: () {
            if (_formKey.currentState.validate()) {
              _formKey.currentState.save();
            } else {
            }
          },
          child: Text('Submit'),
        )
      ],
    ),

Я хочу, чтобы пользователь выбрал дату появления и затем отклонилклавиатура, оставляя значение в поле.

1 Ответ

2 голосов
/ 19 апреля 2019

Вы должны создать дату DateTime; и установите значение в OnChanged ()
Надеюсь, что это работает ... =)

 // Instead of onSaved 
                        /*  onSaved: (value) {
                            debugPrint(value.toString());
                            print(value.toString());
                          }, */ 
//USE 
      onChanged: (dt) =>
                   setState(() => date = dt),
...