Whenever the user taps on the chart, the following error is generated:
======== Exception caught by gesture
===============================================================
The following RangeError was thrown while handling a gesture:
RangeError (index): Invalid value: Valid value range is empty: 0
When the exception was thrown, this was the stack:
#0 List.[] (dart:core-patch/growable_array.dart:254:60)
#1 getNearestChartPoints (package:syncfusion_flutter_charts/src/chart/common/common.dart:1652:28)
#2 SelectionRenderer.isSeriesContainsPoint (package:syncfusion_flutter_charts/src/chart/user_interaction/selection_renderer.dart:1517:9)
#3 ContainerArea._findSeries (package:syncfusion_flutter_charts/src/chart/base/chart_base.dart:2948:24)
#4 ContainerArea.build.<anonymous closure>.<anonymous closure> (package:syncfusion_flutter_charts/src/chart/base/chart_base.dart:2284:57)
#5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:193:24)
#6 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:608:11)
#7 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:296:5)
#8 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:267:7)
#9 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
#10 GestureArenaManager.release (package:flutter/src/gestures/arena.dart:200:7)
#11 DoubleTapGestureRecognizer._reset (package:flutter/src/gestures/multitap.dart:314:45)
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
Handler: "onTap"
Recognizer: TapGestureRecognizer#4b4dc
debugOwner: GestureDetector
state: ready
won arena
finalPosition: Offset(83.1, 450.9)
finalLocalPosition: Offset(45.1, 207.7)
button: 1
sent tap down
===============================================================
I want the tooltip to work in order to let the user see the date and the consumption when tapping on a desired column.
Here is a code snippet:
SfCartesianChart(
primaryXAxis: DateTimeAxis(
intervalType: DateTimeIntervalType.days,
majorGridLines: const MajorGridLines(
color: Colors.transparent),
minimum: periodStartDate,
maximum: periodEndDate,
),
primaryYAxis: NumericAxis(
numberFormat: NumberFormat.decimalPattern(),
labelFormat: "{value} "
),
enableSideBySideSeriesPlacement: false,
tooltipBehavior: TooltipBehavior(enable: true),
series: <ChartSeries>[
ColumnSeries< ConsumptionData, DateTime>(
name: 'الاستهلاك (طن)',
dataSource: _chartDataNormal,
xValueMapper: (ConsumptionData cons, _) => cons.date,
yValueMapper: (ConsumptionData cons, _) => cons.consumption,
enableTooltip: true,
borderRadius: BorderRadius.all(Radius.circular(5)),
color: Colors.blue,
isVisibleInLegend: false,
),
ColumnSeries< ConsumptionData, DateTime>(
name: ' الاستهلاك (طن)',
dataSource: _chartDataAbnormal,
xValueMapper: (ConsumptionData cons, _) => cons.date,
yValueMapper: (ConsumptionData cons, _) => cons.consumption,
enableTooltip: true,
borderRadius: BorderRadius.all(Radius.circular(5)),
color: Colors.red,
isVisibleInLegend: false,
),
LineSeries<ConsumptionData, DateTime>(
enableTooltip: false,
dataSource: <ConsumptionData>[
ConsumptionData(
DateTime(
DateTime.now().year - 20,
DateTime.now().month,
DateTime.now().day),
_averageConsumption
),
ConsumptionData(
DateTime(
DateTime.now().year + 20,
DateTime.now().month,
DateTime.now().day),
_averageConsumption),
],
xValueMapper: (ConsumptionData cons, _) => cons.date,
yValueMapper: (ConsumptionData cons, _) => _averageConsumption,
color: Colors.green,
opacity: 0.5,
dashArray: <double>[5, 5],
),
],
),
I am using the latest version "syncfusion_flutter_charts: ^19.3.45+1" and the error still exists.