Flutter 统计图表

基于 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),

              ]),

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容