我是 Flutter 的新手,只要某些文本字段为空,我就会尝试禁用按钮,因此我制作了 3 个文本控制器来充当 3 个文本字段的控制器,并且我制作了一个功能来检查功能是:
bool isEmpty(){
setState(() {
if(textEditingController.text!=" "&&textEditingController2.text!=" "&& textEditingController3.text!=" "){
isButtonEnabled=true;
}
});
return isButtonEnabled;
}
文本字段的代码是:
TextField(
onSubmitted:null,
controller: textEditingController3,
)
然后我为按钮编写代码如下:Center(
child: RaisedButton(
child: Text("Button 1",style: TextStyle(color:Colors.white),),
onPressed:isButtonEnabled?(){ print("enabled");}:null,
color: Colors.red,
),
问题是即使在我在文本字段中写入后,该按钮仍处于禁用状态。任何想法?提前致谢。 编辑: 感谢@diegoveloper的回答,这很有效,但是如果我想输入初始值并且我希望仅当文本字段具有以下文本字段的值时才启用按钮:
@override
void initState() {
super.initState();
textEditingController = new TextEditingController(text: name);
textEditingController2 = new TextEditingController(text: email);
textEditingController3 = new TextEditingController(text: " place");
}
然后我将 isEmpty 方法更新为:
bool isEmpty(){
setState(() {
if((textEditingController.text!=" ")&&(textEditingController2.text!=" ")&& (textEditingController3.text!=" ")&&(textEditingController!=null)&&(textEditingController2!=null)&&(textEditingController3!=null)){
isButtonEnabled=true;
}
else{
isButtonEnabled=false;
}
});
return isButtonEnabled;
}
问题是尽管我为文本字段提供了初始值,但该按钮仍然被禁用,当我编辑文本字段的 3 个值时,该按钮已启用,但如果我删除了文本(我认为它的意思是 null)按钮仍然被禁用。