SIL*_*MUS 1 textfield setstate flutter
我想在用户在文本字段上输入至少一个字符时更改按钮的颜色\n还想在文本字段为空时更改颜色
\n所以我尝试标记(布尔值)来实现它
\nonChanged: (value) {\n if (value.length == 0) {\n setState(() {\n _isTimeFilled = false;\n });\n } else {\n setState(() {\n _isTimeFilled = true;\n });\n }\n},\n\n...\n\n_isFilled ? Colors.grey : Colors.green\n\nRun Code Online (Sandbox Code Playgroud)\n但它只会在文本字段未聚焦时改变颜色
\n我也尝试过提供商,但结果是一样的。\n我该如何解决这个问题?
\n这是我的代码
\n void _changeButtonColor(int value) {\xe2\x9c\x85\xe2\x9c\x85\xe2\x9c\x85\xe2\x9c\x85\n if (value == 0) {\n setState(() => _isTimeFilled = false);\n } else {\n setState(() => _isTimeFilled = true);\n }\n }\n \n TextFormField TimeTextFormField() {\n return TextFormField(\n focusNode: timeFocusNode,\n autofocus: true,\n keyboardType: TextInputType.number,\n textInputAction: TextInputAction.next,\n onChanged: (value) {\n _changeButtonColor(value.length);\xe2\x9c\x85\xe2\x9c\x85\xe2\x9c\x85\xe2\x9c\x85\n },\n \n \n RaisedButton(\n focusColor: Colors.white,\n splashColor: Colors.white,\n shape: RoundedRectangleBorder(\n borderRadius: BorderRadius.circular(6.0),\n ),\n onPressed: () {},\n color: _isTimeFilled ? Colors.greenAccent : Colors.grey, \xe2\x9c\x85\xe2\x9c\x85\xe2\x9c\x85\xe2\x9c\x85\n textColor: Colors.white,\n child: Padding(\n padding: const EdgeInsets.all(8.0),\n child: SizedBox(\n width: double.infinity, child: Icon(Icons.check)),\n ),\n ),\n ),\nRun Code Online (Sandbox Code Playgroud)\n
小智 6
做这个:
onChanged: (value) {
_isTimeFilled = (value != 0);
setState(() { });
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11023 次 |
| 最近记录: |