我正在尝试Pie Chart
使用库生成数据并使用和小部件fl_chart
在屏幕上显示。当我垂直显示多个图表时,我需要一个滚动条,因此我使用了小部件。Column
Row
SingleChildScrollbar
现在我面临的问题是我的最后几件物品无法正常显示。我尝试了许多不同的东西,例如,Expanded
但没有一个有效,或者我可能使用不正确。Wrap
Flexible
在下图中,您可以看到最后一个 lagend 不正确可见(标记为红色)。
这是我的代码,显示了main
方法中的三个图表
Scaffold(
appBar: AppBar(
title: Text('Widget Demo'),
),
body: SingleChildScrollView(
child: Column(
children: [
PieChartWidget(
indicatorDataList: IndicatorListData.dataOne,
),
PieChartWidget(
indicatorDataList: IndicatorListData.dataTwo,
),
PieChartWidget(
indicatorDataList: IndicatorListData.dataTwo,
),
Text('Hi')
],
),
),
),
PieChartWidget
正在返回
Widget _buildPieChart(BuildContext context) {
return Column(
children: [
Container(
height: MediaQuery.of(context).size.height * 0.35,
width: double.infinity,
child: PieChart(
PieChartData(
sections: getPieChartSectionData(context),
borderData: FlBorderData(
show: false,
),
sectionsSpace: 5,
centerSpaceRadius: 0,
),
),
),
_buildLegends(context)
],
);
}
}
生成图例
Widget _buildLegends(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.end,
children: List.generate(
indicatorDataList.length,
(index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
Container(
height: MediaQuery.of(context).size.height * 0.04,
color: indicatorDataList[index].color,
width: MediaQuery.of(context).size.width * 0.08,
),
Container(
child: Text(indicatorDataList[index].text),
width: MediaQuery.of(context).size.width * 0.15,
),
Container(
height: MediaQuery.of(context).size.height * 0.03,
child: Text(indicatorDataList[index].value.toString()),
width: MediaQuery.of(context).size.width * 0.15,
),
Container(
child: Text(indicatorDataList[index].subText),
width: MediaQuery.of(context).size.width * 0.15,
),
],
),
);
},
),
);
}