我有一个TextField小部件,其默认背景颜色为红色。 当TextFiled聚焦时,我想将背景色更改为蓝色。但是我做不到。
我尝试过的颜色具有三个相对属性。
filled: true,
fillColor: Colors.red,
focusColor: Colors.blue,
仅将填充结果设置为true,fillColor有效,focusColor无效。 你能告诉我怎么办吗?
答案 0 :(得分:3)
您需要在TextField上使用FocusNode和一个color变量来更改颜色:
声明
FocusNode _textFieldFocus = FocusNode();
Color _color = Colors.red;
@override
void initState() {
_textFieldFocus.addListener((){
if(_textFieldFocus.hasFocus){
setState(() {
_color = Colors.blue;
});
}else{
setState(() {
_color = Colors.red;
});
}
});
super.initState();
}
小工具
TextField(
decoration: InputDecoration(
fillColor: _color,
filled: true
),
focusNode: _textFieldFocus,
),