Flutter 快速开始
Flutter 版本为原生 Widget,不使用 WebView。
安装
bash
flutter pub add yotsuba_gantt最小组件
dart
import 'package:flutter/material.dart';
import 'package:yotsuba_gantt/yotsuba_gantt.dart';
final tasks = <YgTask>[
YgTask(
id: 'design',
title: '交互设计',
owner: '小叶',
start: DateTime(2026, 8, 3),
end: DateTime(2026, 8, 12),
progress: .68,
barStyle: YgBarStyle.progress,
),
];
YotsubaGantt(
tasks: tasks,
viewMode: YgViewMode.week,
autoFocus: YgAutoFocus.dense,
onTaskChanged: (change) {
// 用 change.task 更新状态管理或后端。
},
)日期范围
组件只接收 rangeStart / rangeEnd,不会强绑定日期选择器。Material 应用可以使用 showDateRangePicker:
dart
final next = await showDateRangePicker(
context: context,
firstDate: DateTime(2020),
lastDate: DateTime(2035),
initialDateRange: selectedRange,
);
if (next != null) {
setState(() => selectedRange = next);
}控制器
dart
final controller = YgGanttController();
await controller.scrollToDate(DateTime.now());
await controller.scrollTaskIntoView('design');
await controller.scrollToRow(5000);
controller.setView(YgViewMode.month);
await controller.fitToTasks();Flutter 公开类型和 Builder 见 Flutter API。
