Я новичок во флаттере и пытаюсь отключить кнопку, пока некоторые текстовые поля пусты, поэтому я сделал 3 текстовых контроллера, которые будут действовать как контроллер для 3 текстовых полей, и я сделал функцию для проверкифункция:
bool isEmpty(){
setState(() {
if(textEditingController.text!=" "&&textEditingController2.text!=" "&& textEditingController3.text!=" "){
isButtonEnabled=true;
}
});
return isButtonEnabled;
}
И код для текстового поля:
TextField(
onSubmitted:null,
controller: textEditingController3,
)
Затем я пишу код для кнопки следующим образом: Центр (
child: RaisedButton(
child: Text("Button 1",style: TextStyle(color:Colors.white),),
onPressed:isButtonEnabled?(){ print("enabled");}:null,
color: Colors.red,
),
Проблема в том, что кнопка остается отключенной даже после того, как я пишу в текстовые поля. Любая идея? Заранее спасибо. РЕДАКТИРОВАТЬ: благодаря @diegoveloper ответ это сработало, но что, если я хотел бы поставить intitalзначение, и я хочу, чтобы кнопка была включена, только если текстовые поля имеют значения для текстовых полей следующим образом:
@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 значения текстовых полей, кнопка включена, но если я удалил текст (в котором я думаю, что это означает nвсе) кнопка по-прежнему отключена.