一旦 aTextField获得焦点,存储是否启用的对象就会更改,以便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");
}
},
),
switch在下方还有一个可以通过设置它的变量TextField来启用或禁用它。Goalenabled
SwitchListTile(
value: widget.category.goal.enabled,
title: Text("Enable Goal"),
onChanged: (value) {
setState(
() {
widget.category.goal.enabled = value;
},
);
},
),
我发现似乎单击 aTextField会将对象替换为具有默认值Goal的新对象。falseenabled