Flutter:在某个值上更改圆形进度指示器的颜色

Posted

技术标签:

【中文标题】Flutter:在某个值上更改圆形进度指示器的颜色【英文标题】:Flutter: Change Color of Circular Progress Indicator on a certain value 【发布时间】:2021-06-06 14:20:32 【问题描述】: 当达到某个值时,是否可以更改为 CircularProgressIndicator 的 valueColor。

例如: 绿色,如果值 橙色,如果值 红色,如果值 > 60

感谢您的帮助! :)

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

【问题讨论】:

【参考方案1】:

您可以定义一个函数来为您的 CircularProgressIndicator 计算适当的颜色。

我给你创建一个DartPad where you can preview the working widget.

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;
    

【讨论】:

谢谢老兄,您的解决方案完美运行:)

以上是关于Flutter:在某个值上更改圆形进度指示器的颜色的主要内容,如果未能解决你的问题,请参考以下文章

delphi xe android 更改ProgressBar1进度条颜色

如何更改圆形进度条的颜色?

如何使百分比指示器以编程方式在颤动中改变颜色?

如何在 Flutter 中更改 Swiper 分页颜色?

如何更改 QML Dial 中的圆形进度条?

圆形进度指示器忽略宽度/高度属性并且不缩放