1

我想创建一个饼图(或者更确切地说是一个环形图),显示给定值(比如 1000 欧元)已用完多少。我尝试了pie_chartfl_chart包,虽然它们都绘制了漂亮的图表,但我无法以我想要的确切方式显示它。到目前为止,我从这两个包中得到的是,较小的部分从环上的任何地方开始:

在此处输入图像描述

我希望它看起来像这样,较小的部分从顶部开始并顺时针填充空间,具体取决于用完多少可用资金,类似于进度指示器:

在此处输入图像描述

我尝试旋转图表,但旋转程度始终取决于较小部分占用多少空间,我不知道如何计算。

4

2 回答 2

0

进度指示器包非常灵活,可以解决您的问题

要根据百分比获得您选择的不同颜色,您可以使用以下方法:

final double _profilePercentage = 0.25;
Color getProfileStatusColor() {
    switch ((_profilePercentage * 100).toInt()) {
      case 100:
        return kSuccessColor;
      case 75:
        return kSuccessColor;
      case 50:
        return kAccentColor;
      case 25:
        return kErrorColor;

      default:
        return kGreyColor;
    }
  }

其中,小部件看起来像这样:

LinearPercentIndicator(
                              width: MediaQuery.of(context).size.width * 0.85 -
                                  60.0,
                              animation: true,
                              lineHeight: 7.0,
                              animationDuration: 500,
                              percent: _profilePercentage,
                              linearStrokeCap: LinearStrokeCap.roundAll,
                              progressColor: getProfileStatusColor(),
                            ),
于 2021-02-18T11:17:56.277 回答
0

我在这里找到了一个解决方案:https ://stackoverflow.com/a/54709279/11487803 他们使用具有多个 CircularProgressIndicator 的堆栈来实现这一点,但也应该可以使用 CircularPercentIndicator (您必须将背景颜色设置为透明看到后面的元素)

于 2021-02-18T11:56:47.650 回答