我正在使用Flutter Charts创建一个甜甜圈图。我想在甜甜圈中放置文字以及图例。
我尝试在Center Widget
内使用Stack Widget
,但如果将DatumLegend
作为行为添加到图表中,则不会将文本居中。如果删除图例,它将在正确的位置显示文本。
我在图表中的代码是:
Stack(
children: <Widget>[
charts.PieChart(
getseriesList(_values),
animate: true,
defaultRenderer: charts.ArcRendererConfig(
arcWidth: 40,
arcRendererDecorators: [
charts.ArcLabelDecorator(
labelPosition: charts.ArcLabelPosition.outside)
]),
defaultInteractions: true,
behaviors: [
charts.DatumLegend(
position: charts.BehaviorPosition.bottom,
desiredMaxColumns: 4,
legendDefaultMeasure: charts.LegendDefaultMeasure.none,
),
],
),
Center(
child: Container(
margin: EdgeInsets.only(top: 4),
child: Text(
'CenterText',
style: TextStyle(
color: Colors.black38,
fontWeight: FontWeight.w700,
),
),
),
),
],
)
使用定位的小部件,而不是在堆栈中居中。要保持小部件的中心水平:
Positioned(
left : 0,
right : 0,
child : <your widget>,
)
要保持小部件中心垂直:
Positioned(
top : 0,
bottom : 0,
child : <your widget>,
)
这对我有用:)