在特定条件下颤动如何更改TextField边框

问题描述 投票:0回答:2

所以我试图在有文本字段的地方创建一个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),
    ),
  ),
),

如果按钮按下后字段为空,我希望绿色变为红色

flutter flutter-widget
2个回答
0
投票
遵循完整的代码可能会为您提供更多帮助。

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; }); }, ) ], ), ), ); }


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.