Flutter DateTimePickPerformField在选择日期后不会关闭键盘

Flutter DateTimePickPerformField在选择日期后不会关闭键盘,flutter,widget,datetimepicker,Flutter,Widget,Datetimepicker,我正在尝试使用Flatter中的DateTimePickPerformField包创建年龄字段验证器。我可以使日历显示,但在选择日期后无法取消日历 我已经在youtube和Flatter软件包网站上查过了,我不确定哪里出了问题 Widget _buildDateField(BuildContext context) { final _ageFocus = FocusNode(); final dateFormat = DateFormat("mm-dd-yyyy"); var

我正在尝试使用Flatter中的DateTimePickPerformField包创建年龄字段验证器。我可以使日历显示,但在选择日期后无法取消日历

我已经在youtube和Flatter软件包网站上查过了,我不确定哪里出了问题

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'),
        )
      ],
    ),
Widget\u buildDateField(BuildContext上下文){
最终的_ageFocus=FocusNode();
最终日期格式=日期格式(“mm dd yyyy”);
var_formKey=GlobalKey();
返回容器(
宽度:120,
子:列(
儿童:[
形式(
键:_formKey,
子:容器(
子项:DateTimePickField(
dateOnly:对,
格式:dateFormat,
验证器:(val){
如果(val!=null){
返回null;
}否则{
返回“日期字段为空”;
}
},
装饰:输入装饰(
hintText:“年龄”,图标:图标(Icons.calendar_today)),
样式:TextStyle(fontWeight:fontWeight.bold),
initialDate:DateTime.now(),
已保存:(值){
debugPrint(value.toString());
打印(value.toString());
},
),
),
),
升起的按钮(
已按下:(){
if(_formKey.currentState.validate()){
_formKey.currentState.save();
}否则{
}
},
子项:文本('Submit'),
)
],
),

我希望用户选择出现的日期,然后关闭键盘,同时将值保留在字段中。

您应该创建DateTime日期;并在OnChanged()中设置值。
希望它能起作用…=)


您应该创建DateTime date;并在OnChanged()中设置值
希望它能起作用…=)


欢迎使用堆栈溢出!这里有一个指南。只有代码的答案被认为是低质量的:确保提供一个解释您的代码做什么以及它如何解决问题。欢迎使用堆栈溢出!这里有一个指南。只有代码的答案被认为是低质量的:确保提供一个解释您的代码做什么以及它如何解决问题他解决了这个问题。
 // Instead of onSaved 
                        /*  onSaved: (value) {
                            debugPrint(value.toString());
                            print(value.toString());
                          }, */ 
//USE 
      onChanged: (dt) =>
                   setState(() => date = dt),