如何解决如何使饼图互动?没有在onChangedListener回调中获取charts_flutter的饼图
我正在使用Charts_flutter的自动标签饼图。我需要在点击/选择分段时获取选定的饼图分段的数据值。但是我不是要对selectionModel的changedListener进行回调。
var donutChart = new charts.PieChart(
series,animate: true,animationDuration: Duration(milliseconds: 500),defaultInteractions: false,selectionModels: [
new charts.SelectionModelConfig(
type: charts.SelectionModelType.action,changedListener: _onSelectionChanged,updatedListener: _onSelectionUpdated,),],defaultRenderer: new charts.ArcRendererConfig(
arcWidth: 65,arcRendererDecorators: [
new charts.ArcLabelDecorator(),);
_onSelectionChanged(charts.SelectionModel model) {
print('In _onSelectionChanged');
final selectedDatum = model.selectedDatum;
print(selectedDatum.length);
if (selectedDatum.first.datum) {
print(model.selectedSeries[0].measureFn(model.selectedDatum[0].index));
chartAmountText = selectedDatum[0].datum.totalSpend.toString().split('.');
}
}
_onSelectionUpdated(charts.SelectionModel model) {
print('In _onSelectionUpdated');
if (selectedDatum.length > 0) {
print(selectedDatum[0].datum.category);
}
}
解决方法
首先,您必须将defaultInteractions
设置为true
,并将SelectionModelType
更改为info
:
@override
Widget build(BuildContext context) {
return new charts.PieChart(
seriesList,animate: animate,defaultInteractions: true,selectionModels: [
new charts.SelectionModelConfig(
type: charts.SelectionModelType.info,changedListener: _onSelectionChanged,updatedListener: _onSelectionUpdated
),],);
}
然后在_onSelectionChanged
中删除此条件if (selectedDatum.first.datum)
,因为它不是bool
。然后在_onSelectionUpdated
的{{1}}前面添加final selectedDatum = model.selectedDatum;
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。