如何在Flutter Form
中验证复选框?其他验证都可以正常工作,但复选框不显示Error。下面是我的代码:
FormField(
validator: (value) {
if (value == false) {
return 'Required.';
}
},
builder: (FormFieldState<dynamic> field) {
return CheckboxListTile(
value: checkboxValue,
onChanged: (val) {
if (checkboxValue == false) {
setState(() {
checkboxValue = true;
});
} else if (checkboxValue == true) {
setState(() {
checkboxValue = false;
});
}
},
title: new Text(
'I agree.',
style: TextStyle(fontSize: 14.0),
),
controlAffinity: ListTileControlAffinity.leading,
activeColor: Colors.green,
);
},
),
4条答案
按热度按时间xqk2d5yq1#
这个问题的一个更简洁的解决方案是创建一个扩展
FormField<bool>
的类以下是我如何做到这一点:
zsohkypk2#
如果你想把你的复选框直接放在你的表单小部件树中,你可以使用下面提供的解决方案与FormField小部件。而不是使用ListTile我使用行和列,因为我的表单需要不同的布局。
68bkxrlz3#
你可以尝试这样的东西:
2w2cym1i4#
上面的答案是正确的,但是,如果您希望显示与TextFormField小部件错误消息的默认布局更一致的错误消息,则将Text小部件 Package 在Padding小部件中,并给予十六进制颜色#e53935。
注意:您可能需要调整左侧填充以适应CheckboxListTile小部件也 Package 在Padding小部件中。
验证码: