flutter - 在表单字段中显示所选日期以进行颤动
问题描述
我正在尝试弄清楚如何将选定的日期显示回 Flutter 的表单域中。如果我只使用 Text 元素,它可以正常工作
TextFormField(
onTap: _selectDate,
enabled: true,
initialValue: DateFormat("E, d MMM yyyy")
.format(_date)
.toString(),
readOnly: true,
decoration: InputDecoration(labelText: 'Date'),
),
SizedBox(height: 8),
Text(DateFormat("E, d MMM yyyy")
.format(_date)
.toString()),
void _selectDate() async {
final DateTime newDate = await showDatePicker(
context: context,
initialDate: _date,
firstDate: DateTime.now(),
lastDate: DateTime.now().add(Duration(days: 90)),
helpText: 'Select date for task',
);
if (newDate != null) {
setState(() {
_date = newDate;
});
}
}
解决方案
请尝试创建一个 TextEditingController 并将控制器分配给 TextFormField,然后将 controller.text 设置为您要在 setState 中分配的值。请参阅下面的示例代码以供参考。
TextEditingController _dateController = TextEditingController();
TextFormField(
controller: _dateController,
onTap: _selectDate,
enabled: true,
initialValue: DateFormat("E, d MMM yyyy")
.format(_date)
.toString(),
readOnly: true,
decoration: InputDecoration(labelText: 'Date'),
),
SizedBox(height: 8),
Text(DateFormat("E, d MMM yyyy")
.format(_date)
.toString()),
void _selectDate() async {
final DateTime newDate = await showDatePicker(
context: context,
initialDate: _date,
firstDate: DateTime.now(),
lastDate: DateTime.now().add(Duration(days: 90)),
helpText: 'Select date for task',
);
if (newDate != null) {
setState(() {
_date = newDate;
_dateController.text = _date.toString();
});
}
}
推荐阅读
- python - pandas.DataFrame.boxplot 中的这些点是什么?
- php - 如何在 post api 中传递原始正文参数
- responsive - In bootstrap-vue make responsive listing of items
- react-native - React-Native/Expo Location 状态,如果用户在授予应用权限后不想允许位置
- python - (builtins.TypeError) SQLite 日期类型只接受 Python 日期对象作为输入
- sql-server - 查询以避免两个表中的重复值
- react-native - 如何使用@sentry/react-native 在我的模拟器中打开用户反馈窗口
- python - 在单个浏览器中打开多个 chrome 浏览器和多个选项卡是否相同?
- sql-server - 在代理作业中运行 ssis 包,而两者都在不同的机器上
- node.js - 如果我使用 http 状态代码 302 向“/sell”发出 GET 请求,为什么我总是被重定向到“/”?