#flutter #dart #flutter-layout
Вопрос:
Я не могу изменить цвет границы, когда текстовое поле отключено.
Настройки Декора
const textshowad = InputDecoration(
labelText: 'Title',
contentPadding: EdgeInsets.only(left: 40.0,top: 20.0,right: 20.0,bottom: 20.0),
border: OutlineInputBorder(
borderSide: BorderSide(color: Colors.purple,width: 2.0),
borderRadius: BorderRadius.all(Radius.elliptical(15, 15)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.blue, width: 2.0),
));
Текстовое поле
TextFormField(
decoration: textshowad,
enabled: false,
initialValue: widget.titletext,
),
Ответ №1:
В InputDecoration есть параметр «Отключенная граница».
const textshowad = InputDecoration(
labelText: 'Title',
contentPadding: EdgeInsets.only(left: 40.0,top: 20.0,right: 20.0,bottom: 20.0),
border: OutlineInputBorder(
borderSide: BorderSide(color: Colors.purple,width: 2.0),
borderRadius: BorderRadius.all(Radius.elliptical(15, 15)),
),
disabledBorder : OutlineInputBorder(
borderSide: BorderSide(color: Colors.grey,width: 2.0),
borderRadius: BorderRadius.all(Radius.elliptical(15, 15)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.blue, width: 2.0),
));
Ответ №2:
Для этой цели можно использовать троичные операторы. Смотрите приведенный ниже код для лучшего понимания.
bool isEnabled=false;
const textshowad = InputDecoration(
labelText: 'Title',
contentPadding: EdgeInsets.only(left: 40.0,top: 20.0,right: 20.0,bottom: 20.0),
border: isEnabled
? OutlineInputBorder(...)
: OutlineInputBorder(
borderSide: BorderSide(color: Colors.purple,width: 2.0),
borderRadius: BorderRadius.all(Radius.elliptical(15, 15)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.blue, width: 2.0),
));
...
TextFormField(
decoration: textshowad,
enabled: isEnabled,
initialValue: widget.titletext,
),