如何正确启用/禁用Flutter的按钮

Jes*_*sse 3 dart flutter

经研究,当onPressed为null时,将自动禁用Flutter's Button。但是,由于我必须使用测试功能,我被迫放置了一个箭头函数()=>,该函数似乎并未触发onPressed实际上为null,而是返回null作为值。因此,当textField为空时,当前按钮仅不执行任何操作(空)。我的目标是如果textField为空,则完全禁用它(显示为灰色)。

onPressed:()=>(_textController.text.isNotEmpty)?_addNewPair():null,

showDialog(
  context: this.context,
  builder: (BuildContext context) {
    return AlertDialog(
      title: Text('Add a custom word'),
      content: _renderForm(),
      actions: <Widget>[
        FlatButton(
          child: Text('ADD'),
          onPressed: () => (_textController.text.isNotEmpty) ? _addNewPair() : null,
        ),
      ],
    );
  }
Run Code Online (Sandbox Code Playgroud)

die*_*per 6

首先考虑条件,如果文本为空,则按钮将被禁用。

onPressed: (_textController.text.isNotEmpty) ? () =>  _addNewPair() : null,
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,现在按预期工作!现在开始修复我如何处理 _textControll.text 状态,因为即使在写入 textField 时它似乎也不会更新/呈现更改。 (2认同)