google / charts

https://pub.dev/packages/charts_flutter
Apache License 2.0
2.81k stars 1.23k forks source link

The argument type 'List<Series<dynamic, dynamic>>' can't be assigned to the parameter type 'List<Series<dynamic, String>>' #663

Open aseph8083 opened 3 years ago

aseph8083 commented 3 years ago

error in line @override Widget build(BuildContext context) { return new charts.BarChart( seriesList, //error in here animate: animate, barGroupingType: charts.BarGroupingType.grouped, // Add the series legend behavior to the chart to turn on series legends. // By default the legend will display above the chart. behaviors: [new charts.SeriesLegend()], ); }

aseph8083 commented 3 years ago

import 'package:flutter/material.dart'; import 'package:charts_flutter/flutter.dart' as charts;

class SimpleSeriesLegend extends StatelessWidget { final List seriesList; final bool? animate;

SimpleSeriesLegend(this.seriesList, {this.animate});

factory SimpleSeriesLegend.withSampleData() { return new SimpleSeriesLegend( _createSampleData(), // Disable animations for image tests. animate: false, ); }

@override Widget build(BuildContext context) { return new charts.BarChart( seriesList, animate: animate, barGroupingType: charts.BarGroupingType.grouped, // Add the series legend behavior to the chart to turn on series legends. // By default the legend will display above the chart. behaviors: [new charts.SeriesLegend()], ); }

/// Create series list with multiple series static List<charts.Series<OrdinalSales, String>> _createSampleData() { final desktopSalesData = [ new OrdinalSales('2014', 5), new OrdinalSales('2015', 25), new OrdinalSales('2016', 100), new OrdinalSales('2017', 75), ];

final tabletSalesData = [
  new OrdinalSales('2014', 25),
  new OrdinalSales('2015', 50),
  new OrdinalSales('2016', 10),
  new OrdinalSales('2017', 20),
];

final mobileSalesData = [
  new OrdinalSales('2014', 10),
  new OrdinalSales('2015', 15),
  new OrdinalSales('2016', 50),
  new OrdinalSales('2017', 45),
];

final otherSalesData = [
  new OrdinalSales('2014', 20),
  new OrdinalSales('2015', 35),
  new OrdinalSales('2016', 15),
  new OrdinalSales('2017', 10),
];

return [
  new charts.Series<OrdinalSales, String>(
    id: 'Desktop',
    domainFn: (OrdinalSales sales, _) => sales.year,
    measureFn: (OrdinalSales sales, _) => sales.sales,
    data: desktopSalesData,
  ),
  new charts.Series<OrdinalSales, String>(
    id: 'Tablet',
    domainFn: (OrdinalSales sales, _) => sales.year,
    measureFn: (OrdinalSales sales, _) => sales.sales,
    data: tabletSalesData,
  ),
  new charts.Series<OrdinalSales, String>(
    id: 'Mobile',
    domainFn: (OrdinalSales sales, _) => sales.year,
    measureFn: (OrdinalSales sales, _) => sales.sales,
    data: mobileSalesData,
  ),
  new charts.Series<OrdinalSales, String>(
    id: 'Other',
    domainFn: (OrdinalSales sales, _) => sales.year,
    measureFn: (OrdinalSales sales, _) => sales.sales,
    data: otherSalesData,
  ),
];

} }

/// Sample ordinal data type. class OrdinalSales { final String year; final int sales;

OrdinalSales(this.year, this.sales); }

jckh1 commented 3 years ago

I am having the same issue. Please help...

charts_flutter

waqasazeem94 commented 3 years ago

I am also facing the same issue. Please solve this issue.

habibrosyad commented 3 years ago

Temporary fix, you could just do List.from(seriesList) to solve the issue.

jckh1 commented 3 years ago

Thanks a lot, Habib. It is indeed fixed the issue.

anthonyorona commented 3 years ago

You specify the type final List seriesList; That is implicitly of type List<charts.Series<dynamic,dynamic>> You just need to specify type final List<charts.Series<dynamic, String>> seriesList;

itss-sid commented 2 years ago

Thanks a lot, Habib.

fisforfaheem commented 2 years ago

final List<charts.Series<dynamic, String>> seriesList;

Abhishek-Chougule commented 2 years ago

List<Series<dynamic, String>> lstname=seriesList.cast<Series<dynamic, String>>();