flutter - 使用 Flutter Form Builder 如何通过添加 FormBuilderFieldOption 的值来更改 FormBuilderDateTimePicker 的日期值
问题描述
我是颤振的新手,我正在尝试通过单击使用 FormBuilderChoiceChip 创建的芯片之一来更改颤振 FormBuilderDateTimePicker 的初始值。我需要将FormBuilderChoiceChip下的每个FormBuilderFieldOption的值添加到FormBuilderDateTimePicker的initialValue中。这是代码:
child: Column(
children: <Widget>[
FormBuilderChoiceChip(
attribute: "custom_days",
spacing: 3.0,
options: [
FormBuilderFieldOption(
child: Text("3 Days"),
value: 3
),
FormBuilderFieldOption(
child: Text("5 Days"),
value: 5
),
FormBuilderFieldOption(
child: Text("7 Days"),
value: 7
),
],
),
FormBuilderDateTimePicker(
attribute: "date",
inputType: InputType.date,
format: DateFormat("dd-MM-yyyy"),
decoration: InputDecoration(labelText: "Select Date"),
initialValue: DateTime.now(),
)
]
)
解决方案
date
您可以使用事件更改属性的基础值,但属性onChanged
的初始值在 UI 上保持不变。
FormBuilderChoiceChip(
attribute: "custom_days",
spacing: 3.0,
onChanged: (daysToAdd) {
_fbKey.currentState.save();
_fbKey.currentState.setAttributeValue(
'date',
_fbKey.currentState.value['date']
.add(Duration(days: daysToAdd)));
_fbKey.currentState.save();
},
options: [
FormBuilderFieldOption(
child: Text(
"3 Days",
),
value: 3),
FormBuilderFieldOption(
child: Text(
"5 Days",
),
value: 5),
FormBuilderFieldOption(child: Text("7 Days"), value: 7),
],
)
setAttributeValue()
仅在后台工作,但不更新 UI,如包创建者在此处解释的那样。
推荐阅读
- marklogic - 什么是/为什么是 Marklogic Grove?
- java - 仅针对一种方法更改 Hibernate 事务超时?
- python - 创建具有不同元素大小python的数组或列表
- gtk - 使用 Gtk::SpinButton::set_value() - 信号/插槽时卡住
- c++ - 两个值分别大于 x 和 y 的对数
- visual-studio - 无法在 Visual Studio 中构建 docker-compose 项目
- c# - 'Xamarin.Forms.Build.Tasks, Version = 0.0.0.0 , Culture = 中性, PublicKeyToken = null '或其依赖项之一
- python - 如何更改exe文件大小?
- powershell - 使用 Azure AD 的 PowerShell 模块管理组的问题
- c++ - 如果我不能将我的 SQLite 数据库放在我的 QT 应用程序中,我可以把它放在我的资源中吗?