#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,
),
),
),
),