Flutter时间图表展示插件time_chart的使用
Flutter时间图表展示插件time_chart的使用
一个在Flutter中使用的出色的时间图表插件。
图表类型
TimeChart | AmountChart |
---|---|
![]() |
![]() |
![]() |
![]() |
开始使用
1 - 添加依赖
将以下内容添加到你的pubspec.yaml
文件中:
dependencies:
time_chart: ^0.5.4
2 - 安装依赖
从命令行安装包:
flutter packages get
3 - 使用
只需将DateTimeRange
列表传递给data:
参数。列表必须按时间顺序排序。最新数据放在最前面,最旧的数据放在最后面。
示例
以下是完整的示例代码:
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:time_chart/time_chart.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
MyApp({Key? key}) : super(key: key);
// 数据必须按时间顺序排序。
final smallDataList = [
DateTimeRange(
start: DateTime(2021, 2, 24, 23, 15),
end: DateTime(2021, 2, 25, 7, 30),
),
DateTimeRange(
start: DateTime(2021, 2, 22, 1, 55),
end: DateTime(2021, 2, 22, 9, 12),
),
DateTimeRange(
start: DateTime(2021, 2, 20, 0, 25),
end: DateTime(2021, 2, 20, 7, 34),
),
DateTimeRange(
start: DateTime(2021, 2, 17, 21, 23),
end: DateTime(2021, 2, 18, 4, 52),
),
DateTimeRange(
start: DateTime(2021, 2, 13, 6, 32),
end: DateTime(2021, 2, 13, 13, 12),
),
DateTimeRange(
start: DateTime(2021, 2, 1, 9, 32),
end: DateTime(2021, 2, 1, 15, 22),
),
DateTimeRange(
start: DateTime(2021, 1, 22, 12, 10),
end: DateTime(2021, 1, 22, 16, 20),
),
];
List<DateTimeRange> getRandomSampleDataList() {
final List<DateTimeRange> list = [];
final random = Random();
for (int i = 0; i < 10000; ++i) {
final int randomMinutes1 = random.nextInt(59);
final int randomMinutes2 = random.nextInt(59);
final start = DateTime(2021, 2, 1 - i, 0, randomMinutes1);
final end = DateTime(2021, 2, 1 - i, 7, randomMinutes2 + randomMinutes1);
list.add(DateTimeRange(
start: start,
end: end,
));
}
return list;
}
late final List<DateTimeRange> bigDataList = getRandomSampleDataList();
[@override](/user/override)
Widget build(BuildContext context) {
const sizedBox = SizedBox(height: 16);
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Time chart example app')),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
const Text('Weekly time chart'),
TimeChart(
data: bigDataList,
viewMode: ViewMode.weekly,
),
sizedBox,
const Text('Monthly time chart'),
TimeChart(
data: bigDataList,
viewMode: ViewMode.monthly,
),
sizedBox,
const Text('Weekly amount chart'),
TimeChart(
data: smallDataList,
chartType: ChartType.amount,
viewMode: ViewMode.weekly,
barColor: Colors.deepPurple,
),
sizedBox,
const Text('Monthly amount chart'),
TimeChart(
data: smallDataList,
chartType: ChartType.amount,
viewMode: ViewMode.monthly,
barColor: Colors.deepPurple,
),
],
),
),
),
),
);
}
}
更多关于Flutter时间图表展示插件time_chart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter时间图表展示插件time_chart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
time_chart
是一个用于在 Flutter 应用中展示时间图表的插件。它可以帮助你轻松地创建时间轴上的数据可视化,支持多种时间间隔(如分钟、小时、天等)。以下是如何使用 time_chart
插件的基本步骤。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 time_chart
插件的依赖:
dependencies:
flutter:
sdk: flutter
time_chart: ^0.1.0 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入包
在你的 Dart 文件中导入 time_chart
包:
import 'package:time_chart/time_chart.dart';
3. 创建时间图表数据
time_chart
需要你提供 TimeChartData
对象来展示数据。你可以通过 TimeChartData
类来创建数据。
final List<TimeChartItem> items = [
TimeChartItem(
start: DateTime(2023, 10, 1, 10, 0),
end: DateTime(2023, 10, 1, 12, 0),
color: Colors.blue,
),
TimeChartItem(
start: DateTime(2023, 10, 1, 14, 0),
end: DateTime(2023, 10, 1, 16, 0),
color: Colors.red,
),
];
final timeChartData = TimeChartData(
items: items,
start: DateTime(2023, 10, 1, 0, 0),
end: DateTime(2023, 10, 2, 0, 0),
);
4. 使用 TimeChart
组件
在 Widget
中使用 TimeChart
组件来展示时间图表:
class MyTimeChart extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Time Chart Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: TimeChart(
data: timeChartData,
style: TimeChartStyle(
backgroundColor: Colors.white,
timeAxisColor: Colors.grey,
timeAxisTextColor: Colors.black,
timeAxisInterval: TimeInterval.hours(2),
),
),
),
);
}
}
5. 运行应用
现在你可以运行你的 Flutter 应用,查看 time_chart
插件生成的时间图表。
自定义样式
你可以通过 TimeChartStyle
类来自定义图表的样式,例如背景颜色、时间轴颜色、时间轴间隔等。
TimeChartStyle(
backgroundColor: Colors.white,
timeAxisColor: Colors.grey,
timeAxisTextColor: Colors.black,
timeAxisInterval: TimeInterval.hours(2),
)
6. 处理交互
time_chart
还支持一些交互功能,例如点击事件。你可以通过 onItemTap
回调来处理用户点击图表中的某个项目的事件。
TimeChart(
data: timeChartData,
onItemTap: (item) {
print('Item tapped: ${item.start} - ${item.end}');
},
)