1. 项目概述
在Flutter应用开发中,数据可视化是一个常见需求。charts_flutter是Google官方维护的一个强大的图表库,它基于Dart语言实现,能够轻松创建各种类型的统计图表。本文将详细介绍如何在Flutter 2.8.1项目中使用charts_flutter库实现柱状图的绘制,包括数据准备、图表配置和交互功能的实现。
提示:虽然本文以柱状图为例,但charts_flutter库还支持折线图、饼图、面积图等多种图表类型,基本原理是相通的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖配置
2.1 添加charts_flutter依赖
首先,我们需要在项目的pubspec.yaml文件中添加charts_flutter依赖。这个库提供了Flutter图表的核心功能。
yaml复制dependencies:
flutter:
sdk: flutter
charts_flutter: ^0.12.0
添加依赖后,在项目根目录运行flutter pub get命令下载并安装依赖包。这里选择0.12.0版本是因为它在Flutter 2.8.1上经过充分测试,稳定性较好。
2.2 其他必要依赖
除了charts_flutter,我们还需要一些辅助库:
yaml复制dependencies:
get: ^4.6.1 # 用于状态管理
GetX是一个轻量级但功能强大的状态管理库,在本例中用于管理图表数据和状态。选择GetX是因为它简单易用且性能优异,特别适合中小型Flutter项目。
3. 数据模型设计
3.1 柱状图数据模型
我们需要定义一个数据模型来表示柱状图的每个数据点:
dart复制class BarModel {
final String time; // x轴数据(时间)
final double value; // y轴数据(数值)
BarModel(this.time, this.value);
}
这个模型非常简单,只包含两个字段:
time:表示x轴的数据,通常是时间或类别value:表示y轴的数据,即要展示的数值
注意:在实际项目中,你可能需要根据业务需求扩展这个模型,比如添加颜色、标签等额外属性。
4. 控制器实现
4.1 控制器基础结构
我们使用GetX控制器来管理图表数据和状态:
dart复制import 'package:get/get.dart';
import 'package:charts_flutter/flutter.dart' as charts;
class EchartController extends GetxController {
var apiList = [
{ 'time': '2025-01
