搜尋分類、套件與程式碼儲存庫

time_planner 封面
套件詳情v0.1.2+1

time_planner

一個美觀、易於使用且可自訂的 Flutter 移動、桌面和網頁時間規劃工具

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
48
喜歡數
161
Pub 分數
160

安裝套件

flutter pub add time_planner

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

TimePlanner 是一個視覺美觀、直覺且高度可自訂的時間管理工具,專為跨行動、桌面與網路平台的 Flutter 應用設計。它讓使用者能輕鬆安排日程、設定約會並視覺化時間區塊。以彈性為核心設計,支援自訂主題、事件處理與響應式版面。非常適合用於生產力應用、日曆或任務管理工具,可無縫整合至現有的 Flutter 專案中。此套件持續維護且開源,鼓勵社群貢獻。

適用情境

  • 每日計劃管理
  • 任務和日程安排
  • 跨平台日曆整合
  • 個人生產力應用
  • 團隊調度工具

主要特色

  • 可自定義的 UI 與主題
  • 適用於所有平台的響應式設計
  • 事件創建與管理
  • 拖曳與放置功能
  • 對多個時區的支援
  • 開源且由社群驅動

適合對象

  • 開發日曆應用的開發者
  • 以生產力為導向的 Flutter 項目
  • 需要視覺時間管理的應用
  • 跨平台應用程式開發者
  • 希望擁有靈活使用者介面元件的設計師

使用建議

  • 需要具備基本的 Flutter 狀態管理知識
  • 可能需要額外的樣式來處理複雜用例
  • 依賴於平台特定的渲染行為
  • 除了基本設定之外,文件內容有限
  • 未針對高頻率即時更新進行優化

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Time planner

Pub Version Awesome Flutter

A beautiful, easy to use and customizable time planner for flutter mobile 📱, desktop 🖥 and web 🌐

This is a widget for show tasks to user on a time table.
Each row show an hour and each column show a day but you can change the title of column and show any things else you want.

Screenshots

Mobile Dark
Mobile Dark
Desktop Web
Desktop Web

Demo

You can see web demo here: https://jamalianpour.github.io/time_planner_demo

Usage

1. add dependencies into you project pubspec.yaml file
dependencies:
  time_planner: ^0.1.2+1
2. import time planner lib
import 'package:time_planner/time_planner.dart';
3. use time planner
List<TimePlannerTask> tasks = [
  TimePlannerTask(
    // background color for task
    color: Colors.purple,
    // day: Index of header, hour: Task will be begin at this hour
    // minutes: Task will be begin at this minutes
    dateTime: TimePlannerDateTime(day: 0, hour: 14, minutes: 30),
    // Minutes duration of task
    minutesDuration: 90,
    // Days duration of task (use for multi days task)
    daysDuration: 1,
    onTap: () {},
    child: Text(
      'this is a task',
      style: TextStyle(color: Colors.grey[350], fontSize: 12),
    ),
  ),
];
TimePlanner(
  // time will be start at this hour on table
  startHour: 6,
  // time will be end at this hour on table
  endHour: 23,
  // each header is a column and a day
  headers: [
    TimePlannerTitle(
      date: "3/10/2021",
      title: "sunday",
    ),
    TimePlannerTitle(
      date: "3/11/2021",
      title: "monday",
    ),
    TimePlannerTitle(
      date: "3/12/2021",
      title: "tuesday",
    ),
  ],
  // List of task will be show on the time planner
  tasks: tasks,
),
Multi days task

You can add multi days task with daysDuration minimum and default value for this argument is 1 and result look like this :

MultiDay

Style

you can change style of time planner with TimePlannerStyle :

style: TimePlannerStyle(
  backgroundColor: Colors.blueGrey[900],
  // default value for height is 80
  cellHeight: 60,
  // default value for width is 90
  cellWidth: 60,
  dividerColor: Colors.white,
  showScrollBar: true,
  horizontalTaskPadding: 5,
  borderRadius: const BorderRadius.all(Radius.circular(8)),
),

when time planner widget loaded it will be scroll to current local hour and this option is true by default, you can turn this off like this:

currentTimeAnimation: false,
Note

If you use desktop or web platform and want users to be able to move with the mouse in the time planner, add this code to the code:

class MyCustomScrollBehavior extends MaterialScrollBehavior {
  // Override behavior methods and getters like dragDevices
  @override
  Set<PointerDeviceKind> get dragDevices => {
    PointerDeviceKind.touch,
    PointerDeviceKind.mouse,
  };
}

// Set ScrollBehavior for an entire application.
MaterialApp(
  scrollBehavior: MyCustomScrollBehavior(),
  // ...
);

Fill free to fork this repository and send pull request 🏁👍

Medium post

所屬分類

原始碼儲存庫

使用此套件的專案

暫無相關資料。