trackballBehavior.tooltipSettings.format throws NoSuchMethodError

Thank you for providing us excellent chart library!
I'm using SfCartesianChart for my flutter app. 
When I set trackballBehavior.tooltipSettings.format, NoSuchMethodError occurs.
Any workaround?


-------------------------------
I/flutter (22425): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (22425): The following NoSuchMethodError was thrown while handling a gesture:
I/flutter (22425): The getter 'isNegative' was called on null.
I/flutter (22425): Receiver: null
I/flutter (22425): Tried calling: isNegative
I/flutter (22425): 
I/flutter (22425): When the exception was thrown, this was the stack:
I/flutter (22425): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
I/flutter (22425): #1      NumberFormat._signPrefix (package:intl/src/intl/number_format.dart:786:30)
I/flutter (22425): #2      NumberFormat.format (package:intl/src/intl/number_format.dart:430:10)
I/flutter (22425): #3      _getLabelValue (package:syncfusion_flutter_charts/src/chart/utils/helper.dart:1202:28)
I/flutter (22425): #4      TrackballBehaviorRenderer._getTrackballLabelText (package:syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart:1482:15)
I/flutter (22425): #5      TrackballBehaviorRenderer._generateAllPoints (package:syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart:756:30)
I/flutter (22425): #6      TrackballBehavior.show (package:syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart:349:35)
I/flutter (22425): #7      TrackballBehaviorRenderer.onTouchMove (package:syncfusion_flutter_charts/src/chart/user_interaction/trackball.dart:1616:26)
I/flutter (22425): #8      _ContainerArea._performPanUpdate (package:syncfusion_flutter_charts/src/chart/base/chart_base.dart:3330:16)
I/flutter (22425): #9      _ContainerArea.build.. (package:syncfusion_flutter_charts/src/chart/base/chart_base.dart:2328:31)
I/flutter (22425): #10     DragGestureRecognizer._checkUpdate. (package:flutter/src/gestures/monodrag.dart:431:55)
I/flutter (22425): #11     GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
I/flutter (22425): #12     DragGestureRecognizer._checkUpdate (package:flutter/src/gestures/monodrag.dart:431:7)
I/flutter (22425): #13     DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:289:9)
I/flutter (22425): #14     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:93:12)
I/flutter (22425): #15     PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:138:9)
I/flutter (22425): #16     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:397:8)
I/flutter (22425): #17     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:136:18)
I/flutter (22425): #18     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:122:7)
I/flutter (22425): #19     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:381:19)
I/flutter (22425): #20     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:361:22)
I/flutter (22425): #21     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:278:11)
I/flutter (22425): #22     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:316:7)
I/flutter (22425): #23     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:280:5)
I/flutter (22425): #24     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:238:7)
I/flutter (22425): #25     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:221:7)
I/flutter (22425): #29     _invoke1 (dart:ui/hooks.dart:180:10)
I/flutter (22425): #30     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:276:7)
I/flutter (22425): #31     _dispatchPointerDataPacket (dart:ui/hooks.dart:96:31)
I/flutter (22425): (elided 3 frames from dart:async)





6 Replies 1 reply marked as answer

DP Dharanitharan Palanisamy Syncfusion Team May 13, 2021 08:32 AM UTC

Hi Ai, 
 
Greetings from the team at Syncfusion. We have reviewed your question at our end and unfortunately, we are not able to reproduce the reported issue at our end. So, we have attached a sample for your reference, please reproduce the problem in this sample and revert to us, this will help us evaluate and provide you with a solution more quickly. 
 
 
Thanks, 
Dharanitharan. P 



AI ai May 13, 2021 01:33 PM UTC

Thank you for the sample source, but I couldn't build it.
So I paste my source which reproduce the error. What am I missing?

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_charts/charts.dart';
import 'package:intl/intl.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}

class MyHomePage extends StatelessWidget {
MyHomePage({Key key}): super(key: key);

@override
Widget build(BuildContext context) {
final chart = getChart();
return Scaffold(
appBar: AppBar(title: Text('NoSuchMethodError 知らんがな')),
body: SafeArea(child: chart),
);
}

Widget getChart() {
final chartData = getChartData();
return SfCartesianChart(
series: <ChartSeries>[
RangeAreaSeries<ChartData, DateTime>(
dataSource: chartData,
xValueMapper: (ChartData plot, _) => plot.date,
lowValueMapper: (_, __) => 100,
highValueMapper: (_, __) => 150,
opacity: 0.25,
),
LineSeries<ChartData, DateTime>(
dataSource: chartData,
xValueMapper: (ChartData plot, _) => plot.date,
yValueMapper: (ChartData plot, _) => plot.value,
markerSettings: MarkerSettings(isVisible: true),
),
],
primaryXAxis: DateTimeAxis(),
primaryYAxis: NumericAxis(
numberFormat: NumberFormat.simpleCurrency(decimalDigits: 0),
),
trackballBehavior: TrackballBehavior(
enable: true,
tooltipDisplayMode: TrackballDisplayMode.floatAllPoints,
activationMode: ActivationMode.singleTap,
tooltipSettings: InteractiveTooltip(
enable: true,
format: 'point.x : point.y',
),
),
);
}

List<ChartData> getChartData() {
List<ChartData> ret = [];
var num;
for (var i = 0; i < 20; ++i) {
final int year = 2000 + i;
num = i * 20;
ret.add(ChartData(DateTime(year, 1, 1), num));
}
return ret;
}
}

class ChartData {
ChartData(this.date, this.value);
final DateTime date;
final num value;
}




DP Dharanitharan Palanisamy Syncfusion Team May 14, 2021 01:48 PM UTC

Hi Ai, 
 
Query: Thank you for the sample source, but I couldn't build it. 
We checked this and it can generate the given example. We believe you are attempting to run without the null safety version, which will result in an error because our code is null safe. 

Query #2: So, I paste my source which reproduce the error. What am I missing? 
We have looked over your question and the code, and we are happy to inform you that the reported issue has been resolved on our end, and it will be included in the next weekly patch release on May 18th, 2021. We appreciate your patience until then. 
 
Thanks, 
Dharanitharan. P 



DD Dharanidharan Dharmasivam Syncfusion Team May 19, 2021 03:28 PM UTC

Hi Ai Imai, 
 
Thanks for being patience. We are glad to let you know that the reported issue got fixed and the release has been rolled out with the reported bug fix. To resolve the issue, kindly upgrade to the latest version of chart package from below. 
 
Thanks, 
Dharani. 


Marked as answer

AI ai May 20, 2021 12:38 AM UTC

It worked perfectly.
Thank you! You saved my day.


SK Sriram Kiran Senthilkumar Syncfusion Team May 20, 2021 08:35 AM UTC

Hi Ai lmai, 
  
Most Welcome. Please get in touch with us if you have further queries. We are always happy in assisting you. 
  
Regards, 
Sriram Kiran 


Loader.
Up arrow icon