焦点时如何更改TextFiled小部件的背景颜色

时间:2020-01-13 08:11:23

标签: flutter textfield

我有一个TextField小部件,其默认背景颜色为红色。 当TextFiled聚焦时,我想将背景色更改为蓝色。但是我做不到。

我尝试过的颜色具有三个相对属性。

filled: true,
fillColor: Colors.red,
focusColor: Colors.blue,

仅将填充结果设置为true,fillColor有效,focusColor无效。 你能告诉我怎么办吗?

1 个答案:

答案 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,
),