How to change trackball line color dynamically according to theme?

error: "dependOnInheritedWidgetOfExactType<_InheritedTheme>() or dependOnInheritedElement() was called before _HomeScreenState.initState() completed"


void initState(){ _crosshairBehavior = CrosshairBehavior( enable: true, lineColor: Theme.of(context).primaryColor,
                  lineDashArray: <double>[5,5],
                  lineWidth: 2,
                  lineType: CrosshairLineType.vertical
                );
      super.initState();
    }

1 Reply

NR Natrayan Ramalingam Syncfusion Team February 14, 2023 01:02 PM UTC

Hi Felipe,


The requirement “How to change crosshair line color dynamically according to the theme” can be achieved by using the crosshairLineColor property which is available in the SfChartThemeData and setting the interactive tooltip as false to hide the tooltip in the primaryYAxis. Please refer to the following code snippet.


body: SfTheme(

    data: SfThemeData(

       chartThemeData: SfChartThemeData(

            crosshairLineColor: Theme.of(context).primaryColor,

       ),

    ),

    child: SfCartesianChart(

          primaryYAxis: NumericAxis(

               interactiveTooltip: const InteractiveTooltip(enable: false),

          ),

          crosshairBehavior: _crosshairBehavior,

    ),

),

 


Screenshot:


We have attached the sample below for your reference. For more details, refer to the ug:

https://help.syncfusion.com/flutter/themes

https://help.syncfusion.com/flutter/cartesian-charts/trackball-crosshair#crosshair


Regards,

Natrayan


Attachment: f180513_d06109d8.zip

Loader.
Up arrow icon