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}');
  },
) 
        
       
             
             
            

