基于 syncfusion_flutter_charts 统计图表进行的调整
我遇到的问题是 使用 syncfusion_flutter_charts 统计图数据多的话需要左右可以滑动,但是假如在list里面,syncfusion_flutter_charts 图标的滑动手势优先级高于 界面本身list的滑动。这就导致在手指碰触到统计图表滑动界面的时候滑不动。
基于这个情况,针对syncfusion_flutter_charts源码进行分析得出图标上添加了横向滑动和纵向滑动的手势。他们是统一添加到图标上的,针对该情况,对源码进行的调整,把界面上添加的手势全部给放出来,这样可以针对性对弄个手势进行禁用或启用。方便使用
改造后的插件地址 https://gitee.com/breakfly/syncfusion_flutter_charts.git
本插件使用了是 syncfusion_flutter_charts 26.1.41为依托修改的,在flutter 3.22.0一下版本的时候会出现syncfusion_flutter_core 中 colorTheme报错的问题。原因是找不到对应的参数。针对这个我进行了统一改成统一颜色值处理 在 packages/syncfusion_flutter_core 中
添加插件
syncfusion_flutter_charts:
git:
url: https://gitee.com/breakfly/syncfusion_flutter_charts.git
path: packages/syncfusion_flutter_charts
实例
SfCartesianChart(
plotAreaBorderWidth: 0,
primaryXAxis: const CategoryAxis(
autoScrollingDelta: 10,
majorGridLines: MajorGridLines(dashArray: [5, 5]),
),
primaryYAxis: const NumericAxis(
minimum: 0,
interval: 20,
majorGridLines: MajorGridLines(dashArray: [5, 5]),
),
tooltipBehavior: TooltipBehavior(enable: true),
zoomPanBehavior:
CustomPanBehavior(panDirection: AxisOrientation.horizontal),
margin: EdgeInsets.fromLTRB(10, 30.w, 20, 10),
series: <CartesianSeries<CheckModel, dynamic>>[
// Renders line chart
ColumnSeries<CheckModel, dynamic>(
dataSource: [
CheckModel(id: 12, text: "12月"),
CheckModel(id: 20, text: "11月"),
CheckModel(id: 18, text: "10月"),
CheckModel(id: 17, text: "9月"),
CheckModel(id: 22, text: "8月"),
CheckModel(id: 22, text: "7月"),
CheckModel(id: 22, text: "6月"),
CheckModel(id: 22, text: "5月"),
CheckModel(id: 22, text: "4月"),
CheckModel(id: 22, text: "3月"),
CheckModel(id: 22, text: "2月"),
CheckModel(id: 22, text: "1月")
],
name: '签约',
gradient: const LinearGradient(
begin: Alignment.bottomCenter,
end: Alignment.topCenter,
colors: [Color(0xffffffff), Color(0xff0772D8)]),
markerSettings: const MarkerSettings(isVisible: false),
xValueMapper: (CheckModel sales, _) => sales.text,
yValueMapper: (CheckModel sales, _) => sales.id),
]),