Flutter图表展示插件chart_view的使用
Flutter图表展示插件chart_view的使用
特性
固定了错误并完善了功能。
开始使用
在您的 pubspec.yaml
文件中添加以下依赖:
dependencies:
chart_view: ^版本号
然后运行:
$ dart pub get
使用方法
以下是一个完整的示例代码,展示了如何使用 chart_view
插件来绘制睡眠图表。
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:chart_view/chart_view.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('睡眠图表')),
body: Center(
child: DrawSleepChart(),
),
),
);
}
}
class DrawSleepChart extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return drawSleep();
}
Widget drawSleep() {
// 创建睡眠模型列表
List<SleepModel> lists = [];
{
SleepModel one = SleepModel(Colors.red, []);
one.descr = "醒着";
lists.add(one);
}
{
SleepModel one = SleepModel(Colors.grey, []);
one.descr = "快速眼动";
lists.add(one);
}
{
SleepModel one = SleepModel(Colors.green, []);
one.descr = "浅睡";
lists.add(one);
}
{
SleepModel one = SleepModel(Colors.blue, []);
one.descr = "深睡";
lists.add(one);
}
int index = -1;
SleepModel? beforeModel;
for (int i = 0; i < 60 * 7; i++) {
var a = Random().nextInt(99) + 0;
// var b = a.floor();
if (a < 81) {
index = 3;
} else if (a < 95) {
index = 2;
} else if (a < 98) {
index = 1;
} else {
index = 0;
}
SleepModel nowModel = lists[index];
if (beforeModel != nowModel) { // 上一个还是这个数据
if (beforeModel != null) {
Range values = beforeModel.lists.last;
values.end = i;
// print("$a 开始:${values.start} 结束:${values.end}");
// print("开始:${beforeModel.descr} 结束:${nowModel.descr}");
}
Range values = Range(i, i + 1);
nowModel.lists.add(values);
} else {
if (i == 7 * 60 - 1 && beforeModel != null) {
Range values = beforeModel.lists.last;
values.end = i;
print("开始:${values.start} 结束:${values.end}");
}
}
beforeModel = nowModel;
}
return Expanded(child: SleepWidget(lists, 23 * 60, 6 * 60));
}
}
更多关于Flutter图表展示插件chart_view的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复