尝试通过此错误导入 fl_chart.dart时的时间
:错误:“TextScaler”不是一种类型。base_chart_painter.dart:31 最终 TextScaler textScaler; ^^^^^^^^^^ :错误:没有为“MediaQueryData”类定义 getter“textScaler”。line_chart_renderer.dart:27
我该如何解决这个错误
我有一个fl_chart (pub),它显示在下面的 gif 中。转换数据时,画家会在图表的边界之外进行绘制。我怎样才能clipper在下面的图表中添加一个(或其他一些修复),这样这个错误就不会发生?底部有一些代码和一些图像。fl_chart使用 aCustomPainter来绘制图表,所以也许我可以覆盖源代码中的某些内容?
我的快速修复(我删除了过渡动画,但我想使用动画):
忽略 y 轴(左侧)上的标签错误
(如果你没有看到错误,请仔细观察右侧)
我想使用这样的转换,但图表不会超出边界:
这是代码:
LineChartData mainData() {
return LineChartData(
lineTouchData: LineTouchData(
touchTooltipData: LineTouchTooltipData(
fitInsideHorizontally: true,
tooltipBgColor: Colors.white,
getTooltipItems: (List<LineBarSpot> touchedBarSpots) {
return touchedBarSpots.map((barSpot) {
return LineTooltipItem(
'${barSpot.y.toInt()}',
TextStyle(
fontFamily: 'Jost*',
fontSize: 15,
color: Colors.black,
),
);
}).toList();
}
),
getTouchedSpotIndicator: (LineChartBarData barData, List<int> spotIndexes) {
return spotIndexes.map((spotIndex) {
return TouchedSpotIndicatorData(
FlLine(
color: const Color.fromARGB(255, 77, 77, 77),
strokeWidth: 1,
dashArray: [4,4],
),
FlDotData(
getDotPainter: …Run Code Online (Sandbox Code Playgroud) 我正在使用 fl_chart,实际上遇到了一些问题。由于以下问题,我需要帮助来操作 fl_chart 工具提示。当我触摸图表上的条形时,显示的工具提示隐藏了部分
使用的代码
touchTooltipData: BarTouchTooltipData(
tooltipBgColor: Colors.white,
tooltipBottomMargin: 1,
tooltipRoundedRadius: 3,
getTooltipItem: (group, groupIndex, rod, rodIndex) {
String weekDay;
switch (group.x.toInt()) {
case 0:
weekDay = (widget.isKWh)
? '${consoKwh(0)} KWh'
: '${montant(0) * 10000} FCFA';
break;
case 1:
weekDay = (widget.isKWh)
? '${consoKwh(1)} KWh'
: '${montant(1) * 10000} FCFA';
break;
}
return BarTooltipItem(
weekDay,
AppTheme.globalFont(
style: TextStyle(
color: LightColor.green1,
fontWeight: FontWeight.bold,
fontSize: 12
)),
);
}
),
Run Code Online (Sandbox Code Playgroud) 我是 Flutter 新手,刚刚开始使用,fl_charts它看起来真的很棒。然而,我正在努力超越演示 LineChartSample1。
此处给出的示例代码将值分配给点,如下所示:
spots: [
FlSpot(1, 1.4),
FlSpot(2, 3.4),
FlSpot(3, 2),
FlSpot(4, 2.2),
FlSpot(5, 1.8),
],
Run Code Online (Sandbox Code Playgroud)
在现实生活中,这显然必须是动态的。因此,我需要从数字数组中分配值,如下所示:
myArray = [7578, 7547, 3578, 9875]
Run Code Online (Sandbox Code Playgroud)
我不知道如何将此数组分配给点,假设 FlSpot 的第一个参数只是一个像 0、1、2、3 ... 这样的序列,第二个参数来自 myArray。
我需要类似FlSpot(x++, myArray[x])循环的东西。
我尝试按里程(公里)对列表顺序进行排序。成功了。因为图表是同一个方向。(20 -> 7 -> 13)
但我想反转折线图。(13 -> 7 -> 20) 按日期排序。所以我写了下面的代码。
LineChartBarData(
spots: spots.reversed.toList()
)
Run Code Online (Sandbox Code Playgroud)
但它并不像下图那样工作。在我的调试器中,列表肯定是相反的。
这有什么问题吗?