Как я могу изменить цвет сфокусированного цвета значка prefixIcon в TextFiled?

#dart #flutter

#dart #трепетание

Вопрос:

Изображение текстового поля

Я хочу изменить цвет на тот prefixIcon же, focusedInputBorder что и цвет. Я пробовал использовать ThemeData в самом корне приложения, но безуспешно!

Ответ №1:

Цвет prefixIcon управляется с помощью primaryColor вашей темы.

Вы можете настроить его только для TextField , обернув его внутри Theme :

 Theme(data: Theme.of(context).copyWith(primaryColor: Color(..)), child: TextField(..))
  

Ответ №2:

Я новичок в flutter. Но когда я попробовал, как показано ниже, он меняет preFixIcon цвет: (не обращайте внимания на отступ. Он не имеет хорошего отступа)

 TextField(
 obscureText: false,
 style: TextStyle(
 color: Colors.white,
 fontSize: 15.0,
 fontWeight: FontWeight.bold
 ),
  decoration: new InputDecoration(
  prefixIcon: Icon(Icons.vpn_key,
  color: Colors.white,),
  focusedBorder: OutlineInputBorder(
  borderRadius: BorderRadius.all( Radius.circular(20)),
  borderSide: BorderSide( width: 1, color: Colors.white),),
  enabledBorder: OutlineInputBorder(
  borderRadius: BorderRadius.all(Radius.circular(20)),
  borderSide: BorderSide( width: 1, color: Colors.white),),
  hintText: 'Password',
  hintStyle: TextStyle(color: Colors.white,fontSize: 15)
 ),
 )

  

Ниже приведен ожидаемый результат, который я получил:
введите описание изображения здесь

Ответ №3:

 List<FocusNode> _focusNodes = [
  FocusNode(),
  FocusNode(),
];

  @override
  void initState() {
    _focusNodes.forEach((node){
    node.addListener(() {
      setState(() {});
    });
  });
    super.initState();
  }
  

 TextFormField(
            focusNode: _focusNodes[0],
            decoration: InputDecoration(
                prefixIcon: Icon(
                  Icons.alternate_email,
                  color: _focusNodes[0].hasFocus ? Colors.green : Colors.grey,
                ),
                hintText: "Email"),
          ),
  

Ответ №4:

Флаттер 3.3.2

можно сделать так.

 Icon(
  ...
  color: FocusScope.of(context).isFirstFocus ? colorA : colorB
  ...
)