0

我正在尝试Pie Chart使用库生成数据并使用和小部件fl_chart在屏幕上显示。当我垂直显示多个图表时,我需要一个滚动条,因此我使用了小部件。ColumnRowSingleChildScrollbar

现在我面临的问题是我的最后几件物品无法正常显示。我尝试了许多不同的东西,例如,Expanded但没有一个有效,或者我可能使用不正确。WrapFlexible

在下图中,您可以看到最后一个 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,
                ),
              ],
            ),
          );
        },
      ),
    );
  }
4

0 回答 0