0

我正在使用flutter中的fl_charts,似乎无法spots用连续数据填充数组。我的数据不断来自 Firebase 的实时数据库,我尝试将数组的状态设置为等于元素类型FlSpot,如下所示。

var temp_arr = [];
setState(() { 
  for(int i = 0; i<tempList.length;i++) {
      temp_arr[i] = FlSpot((i*1.0), double.parse(tempList[i].humidity))
    }

});

然后当我尝试这样做时spots:temp_arr

final LineChartBarData lineChartBarData2 = LineChartBarData(
  
    spots: temp_arr
...

我会收到一个错误,说它找不到范围。你认为我很接近还是有更好的方法来用动态数据填充我们的图表?

4

1 回答 1

1

我发现了如何提供实时数据。目前正在研究如何修复范围。

List<FlSpot> gatherWeightData(){
    List<FlSpot> spotWeightList = [];
    List<FlSpot> removedSpotWeightList = [];
    for (int i = 0; i < weightList.length; i++) {
      spotWeightList.add(FlSpot((i * 1.0), double.parse(weightList[i].hive_weight)));
      if (spotWeightList.length >= 19) {
        spotWeightList.removeAt(0);
        removedSpotWeightList = spotWeightList;
        return removedSpotWeightList;
      }
    }
    return spotWeightList;
  }

在这里,我们正在创建一个 FlSpot 类型的列表并添加(x,y)所需的值,然后我就spots等于创建这些列表的方法。

List<LineChartBarData> linesBarData1() {
    LineChartBarData lineChartBarData1 = LineChartBarData(
      spots: gatherHumidityData(),
...
于 2020-04-01T11:19:03.417 回答