更改焦点 Flutter 上的后缀图标颜色

change suffixIcon color on focus Flutter

我正尝试在 flutter 中登录 ui。我在 TextFormField 有一个 suffixicon 装饰。我需要设置它的颜色,然后在 TextFormField 处于 聚焦状态

时更改它

我尝试给图标上色,但它保持不变, 我也尝试过主题,但因为我是新手,所以我迷路了。

dartpad link

 Color suffixColor = Colors.grey;

    Focus(
            onFocusChange: (hasFocus) {
              setState(() {
                (hasFocus)
                    ? suffixColor = Colors.red
                    : suffixColor = Colors.grey;
              });
            },
            child: TextFormField(
              decoration: InputDecoration(
                suffixIcon: Icon(
                  Icons.monetization_on,
                  color: suffixColor,
                ),
              ),
            ),

使用 TextFormField 的焦点 属性 来实现您的结果

FocusNode focus = FocusNode();
  
  @override
  Widget build(BuildContext context) {
    
    return TextFormField(
      focusNode: focus,
      onTap: () {
          FocusScope.of(context).requestFocus(focus);
      },
      keyboardType: TextInputType.emailAddress,
      decoration: InputDecoration(
        suffixIcon: Icon(
          Icons.search,
          color: focus.hasFocus ? Colors.red : Colors.green,
        ),
      ),
    );
  }