所以我试图在有文本字段的地方创建一个SignUp表单。我想做的是,如果按下SignUp按钮并且其中有空字段,那么TextField
的边框应从绿色更改为红色,并同时输入TextHint
说“此字段为空”
我只能看到TextEditingController
,它仅控制TextField
的文本部分。
所以,说一个事件后如何改变TextField的边框?
TextField(
controller: _name,
decoration: InputDecoration(
labelText: ' NAME ',
labelStyle: TextStyle(
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green),
),
),
),
如果按钮按下后字段为空,我希望绿色变为红色
TextEditingController _name = TextEditingController();
bool _validateName = false;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
TextField(
controller: _name,
decoration: InputDecoration(
labelText: ' NAME ',
errorText: _validateName ? "please enter name" : null,
labelStyle: TextStyle(
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey,
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green),
),
),
),
RaisedButton(
child: Text("submit"),
onPressed: () {
setState(() {
_name.value.text.isEmpty
? _validateName = true
: _validateName = false;
});
},
)
],
),
),
);
}