Flutter 颤振:如何在启用PanAndZoomBehaviour的同时启用syncfusion图表的滚动?

Flutter 颤振:如何在启用PanAndZoomBehaviour的同时启用syncfusion图表的滚动?,flutter,dart,syncfusion,Flutter,Dart,Syncfusion,我正在使用合成图 到目前为止,对于我的项目来说,它们有很好的功能,但是当启用PanAndZoomBehaviour时,当我尝试从它滚动时,不会注册手势。从那里的支持页面我发现这是有目的的,那么我如何才能覆盖这个图表的手势,以便启用滚动 我正在使用SingleChildScrollView在另一个页面中滚动 代码 导入“包装:颤振/材料.省道”; 导入“包:intl/intl.dart”; 进口“套装:实习2/模型/心率.省道”; 导入“package:syncfusion_flatter_cha

我正在使用合成图
到目前为止,对于我的项目来说,它们有很好的功能,但是当启用
PanAndZoomBehaviour
时,当我尝试从它滚动时,不会注册手势。从那里的支持页面我发现这是有目的的,那么我如何才能覆盖这个图表的手势,以便启用滚动

我正在使用
SingleChildScrollView
在另一个页面中滚动

代码

导入“包装:颤振/材料.省道”;
导入“包:intl/intl.dart”;
进口“套装:实习2/模型/心率.省道”;
导入“package:syncfusion_flatter_charts/charts.dart”;
类HeartRateNormalChart扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
最终宽度=MediaQuery.of(context).size.width;
返回容器(
儿童:SfCartesianChart(
primaryXAxis:DateTimeAxis(dateFormat:dateFormat('MMM'),),
PrimaryAxis:NumericAxis(相对位置:true),
zoomPanBehavior:zoomPanBehavior(启用Pinching:true),
tooltipBehavior:tooltipBehavior(
启用:对,
标题:“心率(bpm)”,
),
系列:[
散射级数(
动画持续时间:1500,
pointColorMapper:(心脏,u){
如果(heart.bpm<60){
返回颜色(0xffFF6262);
}否则{
返回颜色(0xff110E6B);
}
},
数据源:[
心率(月:DateTime(2020年,DateTime.2月1日),bpm:70),
心率(月:DateTime(2020年,DateTime.7月12日),bpm:72),
心率(月:DateTime(2020年,DateTime.8月15日),bpm:55),
心率(
月份:DateTime(2020年,DateTime.11月24日),bpm:65),
心率(
月份:DateTime(2020年,DateTime.12月31日),bpm:80),
],
标记设置:
标记设置(高度:宽度*0.04,宽度:宽度*0.04),
xValueMapper:(heart,)=>heart.month,
yValueMapper:(heart,)=>heart.bpm.ceil(),
启用工具提示:true,
),
]),
);
}
}

感谢您对我们的颤振图感兴趣。我们已经分析了您的场景,我们想告诉您,在以下场景中启用用户交互时,故意禁止滚动手势

  • 十字线或轨迹球启用一次点击作为激活模式
  • 使用除选择缩放以外的模式启用缩放或平移
  • 到目前为止,这是图表的默认行为,我们已经记录了此功能请求的反馈。我们无法为此提供具体的时间表,因为这不在我们计划的列表中,但它将出现在我们即将发布的任何版本中。有关更多信息,您可以按照以下步骤操作

    谢谢, 达拉尼塔兰。P

    import 'package:flutter/material.dart';
    import 'package:intl/intl.dart';
    import 'package:practice2/models/heart_rate.dart';
    import 'package:syncfusion_flutter_charts/charts.dart';
    
    class HeartRateNormalChart extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        final width = MediaQuery.of(context).size.width;
        return Container(
          child: SfCartesianChart(
              primaryXAxis: DateTimeAxis(dateFormat: DateFormat('MMM'),),
              primaryYAxis: NumericAxis(opposedPosition: true),
              zoomPanBehavior: ZoomPanBehavior(enablePinching: true),
              tooltipBehavior: TooltipBehavior(
                enable: true,
                header: 'Heart Rate (bpm)',
              ),
              series: <ChartSeries>[
                ScatterSeries(
                  animationDuration: 1500,
                  pointColorMapper: (heart, _) {
                    if (heart.bpm < 60) {
                      return Color(0xffFF6262);
                    } else {
                      return Color(0xff110E6B);
                    }
                  },
                  dataSource: <HeartRate>[
                    HeartRate(month: DateTime(2020, DateTime.february, 1), bpm: 70),
                    HeartRate(month: DateTime(2020, DateTime.july, 12), bpm: 72),
                    HeartRate(month: DateTime(2020, DateTime.august, 15), bpm: 55),
                    HeartRate(
                        month: DateTime(2020, DateTime.november, 24), bpm: 65),
                    HeartRate(
                        month: DateTime(2020, DateTime.december, 31), bpm: 80),
                  ],
                  markerSettings:
                      MarkerSettings(height: width * 0.04, width: width * 0.04),
                  xValueMapper: (heart, _) => heart.month,
                  yValueMapper: (heart, _) => heart.bpm.ceil(),
                  enableTooltip: true,
                ),
              ]),
        );
      }
    }