Флаттер: Цвет Границы Текстового Поля Не Применяется

#flutter #flutter-layout

Вопрос:

    decoration: InputDecoration(
                      border: OutlineInputBorder(
                          borderSide: BorderSide(
                              width: 2,
                              color: _isPasswordValidated
                                  ? Colors.orange
                                  : Colors.white)),
                      errorBorder: OutlineInputBorder(
                          borderSide: BorderSide(
                              width: 2,
                              color: _isPasswordValidated
                                  ? Colors.orange
                                  : Colors.red)),
                      focusedErrorBorder: OutlineInputBorder(
                          borderSide: BorderSide(
                              width: 2,
                              color: _isPasswordValidated
                                  ? Colors.orange
                                  : Colors.red)),
 

введите описание изображения здесь

Я пытаюсь применить Red цвет, когда пароль не был введен или _isPasswordValidated значение равно false. Однако был применен только оранжевый цвет.

Есть ли в любом случае, что я могу изменить цвет без использования Theme ?

Ответ №1:

На холостом ходу вам нужно использовать enabledBorder , также проверьте focusedBorder и продолжайте.

  • enabledBorder: граница, отображаемая, когда InputDecorator включен и не показывает ошибку.
  • disabledBorder: граница, отображаемая, когда InputDecorator отключен и не показывает ошибку.
  • focusedBorder: граница, отображаемая, когда InputDecorator имеет фокус и не показывает ошибку.

Полная информация о входном ремонте-класс

  TextField(
              decoration: InputDecoration(
                border: OutlineInputBorder(
                  borderSide: BorderSide(
                    width: 2,
                    color: _isPasswordValidated ? Colors.orange : Colors.white,
                  ),
                ),
                focusedBorder: OutlineInputBorder(
                  borderSide: BorderSide(
                    width: 2,
                    color: Colors.pink,
                  ),
                ),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(
                    width: 2,
                    color: _isPasswordValidated ? Colors.orange : Colors.red,
                  ),
                ),
                errorBorder: OutlineInputBorder(
                  borderSide: BorderSide(
                    width: 2,
                    color: _isPasswordValidated ? Colors.orange : Colors.red,
                  ),
                ),
                focusedErrorBorder: OutlineInputBorder(
                  borderSide: BorderSide(
                    width: 2,
                    color: _isPasswordValidated ? Colors.orange : Colors.red,
                  ),
                ),
              ),
            ),