如何解决Flutter中fl_chart库'No named parameter'报错
fl_chart设置坐标轴标题报命名参数不存在问题修复
报错原因
这两个报错是fl_chart版本迭代做了API破坏性更新导致的,旧版教程/示例里的参数已经被官方移除替换:
reversedSize是早期版本的拼写错误参数,后续版本已经修正为reservedSize,作用是定义坐标轴标题区域预留的高度/宽度getTitles参数已经被废弃,替换为getTitlesWidget,新版回调要求直接返回Widget组件,不再支持直接返回字符串,同时原有的getTextStyles参数也被移除,文本样式直接在返回的Text组件中定义即可
修复步骤
- 将
reversedSize: 22替换为reservedSize: 22 - 删除原有
getTextStyles、getTitles两个参数,替换为getTitlesWidget回调,在回调中判断坐标值返回对应带样式的文本组件,不需要显示标题的位置返回空占位组件即可 - (可选)如果只需要显示底部坐标轴标题,记得将其余三个坐标轴的
showTitles设为false,避免出现默认的数值标题
修复后完整代码
import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; class LineTitles { static getTitleData() => FlTitlesData( show: true, bottomTitles: SideTitles( showTitles: true, reservedSize: 22, getTitlesWidget: (value, meta) { String title = ''; switch (value.toInt()) { case 2: title = 'MAR'; break; case 5: title = 'JUN'; break; case 8: title = 'SEP'; break; default: return const SizedBox.shrink(); } return Text( title, style: const TextStyle( color: Color(0xff68737d), fontWeight: FontWeight.bold, fontSize: 16, ), ); }, margin: 8, ), leftTitles: SideTitles(showTitles: false), topTitles: SideTitles(showTitles: false), rightTitles: SideTitles(showTitles: false), ); }
注意:
getTitlesWidget的回调有两个参数,第一个是坐标轴当前值,第二个是标题元数据,编写时不要漏写参数否则会触发类型不匹配报错。
内容的提问来源于stack exchange,提问作者pomoworko.com
相关产品推荐
相关产品推荐

