Флаттер: Изменение цвета кругового индикатора хода выполнения на определенное значение

#flutter #colors #flutter-circularprogressindicator

Вопрос:

можно ли изменить значение на цвет индикатора CircularProgressIndicator при достижении определенного значения.

Например:
Зеленый, если значение < 30
Оранжевый, если значение < 60
Красный, если значение > 60

Спасибо за помощь! 🙂

 CircularProgressIndicator(
                            strokeWidth: 6,
                            value: amountSpent / budget,
                            backgroundColor: UiColors.backgroundColor,
                            valueColor: AlwaysStoppedAnimation<Color>(
                                UiColors.categoryColors[1]),
                          ),
 

Ответ №1:

Вы можете определить функцию, которая будет вычислять соответствующий цвет для вашего индикатора CircularProgressIndicator.

Я создаю для вас панель для дартса, где вы можете просмотреть рабочий виджет.

 CircularProgressIndicator(
    strokeWidth: 6,
    value: amountSpent / budget,
    backgroundColor: calculateBackgroundColor(value: amountSpent / budget)
    valueColor: AlwaysStoppedAnimation<Color>(UiColors.categoryColors[1]),
),

// Define a function to calculate the adequate color:
Color calculateBackgroundColor({required double value}) {
    if (value > 0.60) {
        return Colors.red;
    } else if (value > 0.30) {
        return Colors.orange;
    } else {
        return Colors.green;
    }
}
 

Комментарии:

1. Спасибо, чувак, твое решение работает идеально 🙂