【问题标题】:how to show piechart with grey colour circle instead of empty when data is null in flutter当数据在 flutter 中为空时,如何用灰色圆圈而不是空圆圈显示饼图
【发布时间】:2022-11-27 17:07:20
【问题描述】:

我正在使用 fl_chart 包创建一个 chartWidget,

如果图表的数据为空,则显示为空...但是

我想让它显示相同大小的灰色圆圈当图表的数据为空时...就像我附上的图片

这是我的图表小部件

class ChartWidget extends StatelessWidget {
  final Map<String, dynamic> mapdata;

  const ChartWidget({super.key, required this.mapdata});

  @override
  Widget build(BuildContext context) {
    return Container(
        padding: EdgeInsets.all(20),
        child: PieChart(
            PieChartData(
                sectionsSpace: 4,
                centerSpaceRadius: 50,
                sections: mapdata.entries
                    .map((e) => PieChartSectionData(
                    title: e.key.toString(), value: (e.value)))
                    .toList()))
    );
  }

}

主屏幕

class HomeScreen extends StatelessWidget {
   HomeScreen({Key? key}) : super(key: key);


  Map<String,dynamic> expenseData={
    'Food':3000.0,
    'Medicine':4000.0,
    'Others':800.0
  };
  Map<String,dynamic> incomeData={};//here income data is empty

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
        Expanded(child: ChartWidget(mapdata: expenseData,)),
        Expanded(child: ChartWidget(mapdata: incomeData,)),
      ],),
    );
  }
}

【问题讨论】:

    标签: flutter


    【解决方案1】:

    尝试这个:

    sections: mapdata.isEmpty
                      ? [PieChartSectionData(color: Colors.grey)]
                      : mapdata.entries
                          .map((e) => PieChartSectionData(
                              title: e.key.toString(), value: (e.value)))
                          .toList(),
    

    【讨论】:

    • 完成.....再帮个忙....我想显示百分比而不是类别标题..这里。我提供的是金额而不是百分比,并且不想手动计算百分比...它是根据百分比绘制的这意味着它会计算自己的。如何知道它存储在哪个属性中
    猜你喜欢
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多