【发布时间】:2019-02-12 15:46:24
【问题描述】:
一旦TextField 获得焦点,存储是否启用的对象就会发生变化,因此TextField 会立即被禁用。当上面的另一个TextField 获得焦点时也会发生这种情况。
TextField 放置在 StatefulWidget 中,Category 对象包含另一个名为 Goal 的对象,如果它被启用或禁用,它包含一个 bool 变量。该变量还用于启用或禁用TextField。
TextField(
controller: _goalAmountController,
enabled: widget.category.goal.enabled,
decoration: InputDecoration(
labelText: "Goal Amount",
border: OutlineInputBorder(),
),
onChanged: (value) {
try {
widget.category.goal.amount = double.parse(value);
} on Exception {
//TODO display error message
print("Invalid Goal-Amount");
}
},
),
在TextField 下方还有一个switch,通过设置enabled 变量来启用或禁用Goal。
SwitchListTile(
value: widget.category.goal.enabled,
title: Text("Enable Goal"),
onChanged: (value) {
setState(
() {
widget.category.goal.enabled = value;
},
);
},
),
我发现点击TextField 似乎会将Goal 对象替换为具有false 作为enabled 的默认值的新对象。
【问题讨论】:
标签: dart flutter statefulwidget