flutter_gantt 0.9.2 copy "flutter_gantt: ^0.9.2" to clipboard
flutter_gantt: ^0.9.2 copied to clipboard

Flutter package for rendering an interactive and customizable Gantt chart widget.

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 segments with custom styling
  • 👅 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

GantActivity

Represents a task with:

GantActivity(
  start: DateTime.now(),
  end: DateTime.now().add(Duration(days: 5)),
  title: 'Task Name',
  color: Colors.blue,
  // Optional:
  children: [/* sub-tasks */],
  segments: [/* phases */],
  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:]

GantActivity(
  cellBuilder: (date) => YourCustomWidget(date),
  titleWidget: YourTitleWidget(),
)

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
  • Implementing cell segments
  • Improving mobile usability
12
likes
0
points
956
downloads

Publisher

verified publisherinsideapp.it

Weekly Downloads

Flutter package for rendering an interactive and customizable Gantt chart widget.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, linked_scroll_controller, provider

More

Packages that depend on flutter_gantt