-
Notifications
You must be signed in to change notification settings - Fork 879
Description
Exception caught by gesture library
The following RangeError was thrown while dispatching a pointer event:
RangeError (index): Invalid value: Not in inclusive range 0..4: 7
When the exception was thrown, this was the stack:
#0 List.[] (dart:core-patch/growable_array.dart:264:36)
#1 RangeAreaSegment.trackballInfo (package:syncfusion_flutter_charts/src/charts/series/range_area_series.dart:542:29)
#2 TrackballBehavior._generateAllPoints. (package:syncfusion_flutter_charts/src/charts/interactions/behavior.dart:3269:25)
#3 ContainerRenderObjectMixin.visitChildren (package:flutter/src/rendering/object.dart:4343:14)
#4 TrackballBehavior._generateAllPoints (package:syncfusion_flutter_charts/src/charts/interactions/behavior.dart:3247:23)
#5 TrackballBehavior.show (package:syncfusion_flutter_charts/src/charts/interactions/behavior.dart:2938:7)
#6 RenderBehaviorArea._showTrackball (package:syncfusion_flutter_charts/src/charts/interactions/behavior.dart:642:24)
#7 RenderBehaviorArea.handlePointerHover (package:syncfusion_flutter_charts/src/charts/interactions/behavior.dart:417:7)
my code:
import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_charts/charts.dart';
import 'package:syncfusion_flutter_charts/sparkcharts.dart';
void main() {
return runApp(_ChartApp());
}
class _ChartApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primarySwatch: Colors.blue, useMaterial3: false),
home: _MyHomePage(),
);
}
}
class _MyHomePage extends StatefulWidget {
// ignore: prefer_const_constructors_in_immutables
_MyHomePage({Key? key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<_MyHomePage> {
List<_SalesData> data = [
_SalesData('Jan', 35),
_SalesData('Feb', 28),
_SalesData('Mar', 34),
_SalesData('Apr', 32),
_SalesData('May', 40)
];
var trackballBehavior = TrackballBehavior(
tooltipSettings: InteractiveTooltip(
canShowMarker: false,
enable: true,
color: Colors.black,
format: "point.x",
borderRadius: 0,
borderColor: Colors.transparent),
enable: true,
// lineType: TrackballLineType.horizontal,
activationMode: ActivationMode.singleTap);
var crosshairBehavior = CrosshairBehavior(
enable: true,
activationMode: ActivationMode.singleTap,
shouldAlwaysShow: true,
lineType: CrosshairLineType.horizontal);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Syncfusion Flutter chart'),
),
body: Column(children: [
//Initialize the chart widget
SfCartesianChart(
trackballBehavior: trackballBehavior,
crosshairBehavior: crosshairBehavior,
primaryXAxis: CategoryAxis(),
// Chart title
title: ChartTitle(text: 'Half yearly sales analysis'),
// Enable legend
legend: Legend(isVisible: true),
// Enable tooltip
tooltipBehavior: TooltipBehavior(enable: true),
series: <CartesianSeries<_SalesData, String>>[
RangeAreaSeries<_SalesData, String>(
dataSource: data,
xValueMapper: (_SalesData sales, _) => sales.year,
highValueMapper: (_SalesData sales, _) => sales.sales,
lowValueMapper: (_SalesData sales, _) => sales.sales - 10,
name: 'Sales',
// Enable data label
dataLabelSettings: DataLabelSettings(isVisible: true))
]),
]));
}
}
class _SalesData {
_SalesData(this.year, this.sales);
final String year;
final double sales;
}