繁体   English   中英

Flutter TextFormField 未更新其值

[英]Flutter TextFormField not updating it's value

我制作了一个 TimePicker,当用户点击textFormField时它会弹出它工作正常但唯一的问题是我想用从timePicker中选择的值更新textFormField值我已经声明了controller并初始化了一个selectedTimer

  TimeOfDay selectedTime = TimeOfDay(hour: 0, minute: 0);
  TextEditingController _timeController = TextEditingController();

这是TextFormField的代码

 TextFormField(
      controller: _timeController,
      onTap: () {
         FocusScope.of(context).requestFocus(new FocusNode());
         _selectTime(context);
      },
  ),

这是方法_selectTime的代码

_selectTime(BuildContext context) async {
    final TimeOfDay? timeOfDay = await showTimePicker(
      context: context,
      initialTime: selectedTime,
      initialEntryMode: TimePickerEntryMode.dial,
    );
    if (timeOfDay != null && timeOfDay != selectedTime) {
      setState(() {
        selectedTime = timeOfDay;
        TextEditingValue(text: timeOfDay.toString());
      });
    }
  }

如下操作:

_timeController.text=timeOfDay.toString();
 selectTime(BuildContext context) async {
final TimeOfDay? timeOfDay = await showTimePicker(
  context: context,
  initialTime: selectedTime,
  initialEntryMode: TimePickerEntryMode.dial,
);
if (timeOfDay != null && timeOfDay != selectedTime) {
  setState(() {
    selectedTime = timeOfDay;
    _timeController.text=timeOfDay.toString();
    TextEditingValue(text: timeOfDay.toString());
  });
}

}

删除此行TextEditingValue(text: timeOfDay.toString());

并替换为这个_timeController.text = selectedTime.toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM