#flutter #flutter-state
#флаттер #состояние flutter
Вопрос:
У меня есть коробка такого размера
child: SizedBox(
width: 50.0,
height: 50.0,
child: DecoratedBox(
decoration: BoxDecoration(
color: Colors.blue
),
)
),
я хотел бы изменить цвет оформления окна в зависимости от значения элемента состояния с именем _status, _status может иметь четыре значения 1,2,3,4, и в зависимости от значения status я хотел бы изменить цвет оформления окна следующим образом
1 — синий
2 — красный
3- желтый
4 — зеленый
Обычно используемый троичный оператор не помогает, поскольку он хорош только для ограниченного числа значений состояния. есть ли способ, которым я могу это реализовать?
Спасибо
Ответ №1:
Вы можете определить вспомогательную функцию для вычисления значения цвета
child: SizedBox(
width: 50.0,
height: 50.0,
child: DecoratedBox(
decoration: BoxDecoration(
color: _getBoxColor(),
),
)
),
//somewhere below build method
Color _getBoxColor() {
switch (_status) {
case 1:
return Colors.blue;
case 2:
return Colors.red;
...
}