搜索插件、代码仓与 APP 分类

flutter_gantt 封面
插件详情v1.4.0

flutter_gantt

用于渲染交互式且可自定义甘特图小部件的 Flutter 包。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
1140
喜欢数
27
Pub 分数
160

安装插件

flutter pub add flutter_gantt

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Flutter Gantt 是一个可自定义且交互式的 Gantt 图表小部件,适用于 Flutter,使开发者能够在多个平台上可视化项目时间线、任务和依赖关系。它支持动态任务调度、拖放功能和响应式设计,非常适合项目管理应用程序。该包与 Flutter 的 UI 框架无缝集成,并提供广泛的样式和行为配置选项。由 insideapp.it 维护,并可在 GitHub 上获取,欢迎社区贡献。

适合场景

  • 项目时间线可视化
  • 应用中的任务调度
  • 资源规划工具
  • 敏捷项目管理
  • 团队工作流程跟踪

主要特点

  • 交互式拖放
  • 可自定义的任务样式
  • 跨平台支持
  • 响应式布局
  • 任务依赖关系渲染
  • 可配置的缩放和滚动

适合对象

  • 项目管理应用
  • 生产力工具
  • 开发冲刺跟踪器
  • 企业规划软件
  • 教育项目仪表板

使用建议

  • 需要仔细处理大型数据集
  • 有限的内置主题支持
  • 可能需要额外的逻辑来处理复杂的依赖关系
  • 大量任务带来的性能影响
  • 文档可能需要更详细的说明

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Flutter Gantt Chart

Pub Version Pub Points License

A production-ready, fully customizable Gantt chart widget for Flutter applications.

Gantt Chart Demo


Features

  • 💓 Scrollable timeline view
  • ↔ Draggable
  • 🎈 Complete visual customization
  • 🛳 Hierarchical activities with parent/child relationships
  • 🙳 Activity custom builder
  • 👅 Built-in date utilities and calculations
  • 🚀 Optimized for performance
  • 😱 Responsive across all platforms

Installation

Add to your pubspec.yaml:

yaml dependencies: flutter_gantt: <latest-version>

Then run:

bash flutter pub get


Quick Start

import 'package:flutter_gantt/flutter_gantt.dart';

Gantt(
  theme: GanttTheme.of(context),
  activitiesAsync: (startDate, endDate, activity) async => _activities,
  holidaysAsync: (startDate, endDate, holidays) async _holidays,
  onActivityChanged: (activity, start, end) {
    if (start != null && end != null) {
      debugPrint('$activity was moved (Event on widget)');
    } else if (start != null) {
      debugPrint(
        '$activity start was moved (Event on widget)',
      );
    } else if (end != null) {
      debugPrint('$activity end was moved (Event on widget)');
    }
  },
),

Documentation

Core Components
Gantt Widget

The main chart container with these key properties:

Property Type Description
startDate DateTime Initial visible date
activities List Activities to display
holidays List Special dates to highlight
theme GanttTheme Visual customization
controller GanttController Programmatic control
showIsoWeek bool Enables the ISO week-number row
GanttActivity

Represents a task with:

GanttActivity(
  start: DateTime.now(),
  end: DateTime.now().add(Duration(days: 5)),
  title: 'Task Name',
  color: Colors.blue,
  // Optional:
  children: [/* sub-tasks */],
  onCellTap: (activity) => print('Tapped ${activity.title}'),
)

Advanced Features
Programmatic Control
final controller = GanttController(
    startDate: DateTime.now(),
    daysViews: 30,
);

// Navigate timeline
controller.next(days: 7);   // Move forward
controller.prev(days: 14);  // Move backward

// Update data
controller.setActivities(newActivities);
Custom Builders
GanttActivity(
  cellBuilder: (date) => YourCustomWidget(date),
  titleWidget: YourTitleWidget(),
)
ISO Weeks
GanttActivity(
  showIsoWeek: true,
  ...
)

Weeks


Examples

Explore complete examples in the example folder.


Contributing

We welcome contributions!


License

MIT – See LICENSE for details.

Roadmap

  • Added limitations when dragging
  • Improving documentation
  • Improving mobile usability

所属分类

依赖

依赖清单 3 项

源码仓库

使用此插件的项目

暂无相关数据。