Flutter中BarChart报错:bottomTitles和leftTitles参数未定义
问题解决方案
你的错误源于**fl_chart新版本的FlTitlesData结构使用不当**,具体问题:
- 错误将底部标题的
SideTitles嵌套到leftTitles的AxisTitles中,而AxisTitles并没有bottomTitles参数 - 重复定义
leftTitles参数,导致语法结构混乱
修正后的代码如下:
Widget build(BuildContext context) { return Container( height: 300, padding: EdgeInsets.only(top: 16, right: 16, left: 16), child: BarChart( BarChartData( maxY: 20, titlesData: FlTitlesData( show: true, // 底部标题:正确关联bottomTitles,用AxisTitles包裹SideTitles bottomTitles: AxisTitles( sideTitles: SideTitles( showTitles: true, margin: 20, getTitles: (double value) { switch (value.toInt()) { case 0: return 'Mn'; case 1: return 'Te'; case 2: return 'Wd'; case 3: return 'Tu'; case 4: return 'Fr'; case 5: return 'St'; case 6: return 'Sn'; default: return ''; } }, ), ), // 左侧标题:正确用AxisTitles包裹SideTitles leftTitles: AxisTitles( sideTitles: SideTitles( showTitles: true, margin: 16, reservedSize: 14, getTitles: (value) { if (value == 0) { return '100k'; } else if (value == 10) { return '20k'; } else if (value == 19) { return '25k'; } else if (value == 5) { return '14k'; } else { return ''; } }, ), ), ), borderData: FlBorderData( show: false, ), barGroups: showingBarGroups, ), ).center(), ).paddingAll(16).center(); }
关键修正说明:
- 在
FlTitlesData下直接声明bottomTitles和leftTitles参数,每个参数值为AxisTitles类型 AxisTitles内部通过sideTitles参数传入SideTitles配置,而非直接写bottomTitles或leftTitles- 移除重复的
leftTitles定义,保证结构合法清晰
内容的提问来源于stack exchange,提问作者user23335140
相关产品推荐
相关产品推荐

