如何访问Google flutter_chart库中从BaseChart继承的属性?

时间:2019-05-09 18:32:33

标签: dart flutter

我正在使用Google的this图表库。

我正在创建一个新的LineChart,例如

chart = new charts.LineChart(
  series,
  animate: true,
  domainAxis: new charts.NumericAxisSpec(
    viewport: new charts.NumericExtents(3101.0, 3600.0)),
  behaviors: [
    new charts.PanBehavior(panningCompletedCallback: _onPanEnd),
  ],
);

我希望能够访问从BaseChart继承的属性。继承是这样的:LineChart扩展了NumericCartesianChart扩展了CartesianChart扩展了BaseChart。

可以毫无问题地访问CartesianChart的属性,但不能访问BaseChart的属性。

print(chart.domainAxis.viewport);输出“ flutter:Extent(3101.0,3600.0)”

但是 print(chart.chartHeight);引发

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following NoSuchMethodError was thrown building MyHomePage(dirty, state:
flutter: _MyHomePageState#4dfc6):
flutter: Class 'LineChart' has no instance getter 'chartHeight'.
flutter: Receiver: Instance of 'LineChart'
flutter: Tried calling: chartHeight

超级感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:1)

这让我感到困惑-dart继承通常可以正常工作,如果不是,那么很多东西就必须出错了!

但是,问题是'charts_flutter'和'charts_common'库非常相似,并且都碰巧包含了'BaseChart'和'LineChart'。因此,您应该改用flutter_charts' version of BaseChartof LineChart

不幸的是,这不能解决您不能访问'chartHeight'的问题,因为该类没有chartHeight,但是希望您现在能够以其他方式解决基础问题重新阅读正确的文档。