搜索分类、插件与代码仓

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

所属分类

源码仓库

使用此插件的项目

暂无相关数据。