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

progressive_time_picker 封面
插件详情v1.0.4

progressive_time_picker

此包允许我们根据需求自定义时间选择器,以从时间选择器中选择特定范围,并支持多个平台。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
2730
喜欢数
177
Pub 分数
150

安装插件

flutter pub add progressive_time_picker

插件介绍

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

progressive_time_picker 包为 Flutter 应用提供了一个可自定义的时间选择器,使开发者能够定义特定的时间范围,并定制选择器的外观和行为。它支持 Android、iOS、Web、macOS、Windows 和 Linux 等多个平台,确保在不同设备上提供一致的用户体验。通过灵活的配置选项,它可以精确控制时间选择,非常适合需要自定义时间输入逻辑的应用程序。该包设计用于轻松集成和可扩展性。

适合场景

  • 自定义时间范围选择
  • 跨平台时间输入
  • 预约安排
  • 基于时间的表单输入
  • 活动策划工具

主要特点

  • 可配置的时间范围
  • 多平台支持
  • 可扩展的 UI 自定义
  • 响应式设计
  • 平台无关的实现
  • 与 Flutter 表单轻松集成

适合对象

  • 需要灵活时间选择器的开发者
  • 需要限制时间选择的应用
  • 跨平台 Flutter 项目
  • 表单密集型应用
  • 面向用户界面的时钟输入组件

使用建议

  • 需要了解 Flutter 状态管理
  • 有限的内置主题(需要自定义样式)
  • 可能需要额外的验证来处理边缘情况
  • 未针对极长的时间间隔进行优化
  • 依赖外部 GitHub 仓库以获取更新

原始 README

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

progressive_time_picker

Flutter Website Dart Website MIT License

A Customizable Progressive Time Picker for Flutter. This package allow us to customize time picker based on our requirements for selecting a specific range from time picker and it's supports multiple platforms.

Key Features

  • Supports selecting either a single picker handler or both simultaneously.
  • Provides easy customization options for decorating the time picker.
  • Offers the ability to display clock numbers in both 12-hour and 24-hour formats, with full customization support.
  • Allows disabling specific time ranges for more control.

Preview

progressive time picker

progressive_time_picker

progressive time picker with disabled ranges

progressive_time_picker_disabled_range progressive_time_picker_multiple_disabled_ranges

Basic Usage

Import it to your project file

import 'package:progressive_time_picker/progressive_time_picker.dart';

And add it in its most basic form like it:

  TimePicker(
    initTime: PickedTime(h: 0, m: 0),
    endTime: PickedTime(h: 8, m: 0),
    onSelectionChange: (start, end, isDisableRange) =>
        print(
            'onSelectionChange => init : ${start.h}:${start.m}, end : ${end.h}:${end.m}, isDisableRangeRange: $isDisableRange'),
    onSelectionEnd: (start, end, isDisableRange) =>
        print(
            'onSelectionEnd => init : ${start.h}:${start.m}, end : ${end.h}:${end.m},, isDisableRangeRange: $isDisableRange'),
  );

And for the DisabledRanges:

TimePicker(
    initTime: PickedTime(h: 0, m: 0),
    endTime: PickedTime(h: 8, m: 0),
    disabledRanges: [
      DisabledRange(
        initTime: PickedTime(h: 12, m: 0),
        endTime: PickedTime(h: 20, m: 0),
      ),
    ],
    disabledRangesColor: Colors.grey,
    disabledRangesErrorColor: Colors.red,
    onSelectionChange: (start, end, isDisableRange) => print(
      'onSelectionChange => init : ${start.h}:${start.m}, end : ${end.h}:${end.m}, isDisableRangeRange: $isDisableRange'),
    onSelectionEnd: (start, end, isDisableRange) => print(
      'onSelectionEnd => init : ${start.h}:${start.m}, end : ${end.h}:${end.m},, isDisableRangeRange: $isDisableRange'),
);

Required parameters of TimePicker

Parameter Description
PickedTime initTime the init PickedTime value in the selection
PickedTime endTime the end PickedTime value in the selection
onSelectionChange callback function when init and end PickedTime change
onSelectionEnd callback function when init and end PickedTime finish

Optional parameters of TimePicker

Parameter Default Description
double height 220 height of the canvas
double width 220 width of the canvas
int primarySectors 0 the number of primary sectors to be painted
int secondarySectors 0 the number of secondary sectors to be painted
Widget child Container widget that would be mounted inside the circle
TimePickerDecoration decoration - used to decorate our TimePicker widget
bool isInitHandlerSelectable true used to enabled or disabled Selection of Init Handler
bool isEndHandlerSelectable true used to enabled or disabled Selection of End Handler
bool isSelectableHandlerMoveAble true used to enabled or disabled the Movement of Init and End Handler when its not Selectable (disable the dragging of both handlers)
List disabledRanges null used to disable Selection ranges, If null so there is no disable time ranges
Color disabledRangesColor Colors.grey defines the color for the disabled range
Color disabledRangesErrorColor Colors.red defines the color for the error in disabled range
bool drawInitHandlerOnTop false used to set priority to draw init or end handler on the top

Required parameters of TimePickerDecoration

Parameter Description
TimePickerSweepDecoration sweepDecoration used to decorate our sweep part or a part between our init and end point with various options
TimePickerHandlerDecoration initHandlerDecoration used to decorate our init or end handler of time picker
TimePickerHandlerDecoration endHandlerDecoration used to decorate our init or end handler of time picker

Optional parameters of TimePickerDecoration

Parameter Default Description
Color baseColor cyanAccent defines the background color of the picker
double pickerBaseCirclePadding 0.0 to add extra padding for picker base or outer circle
TimePickerSectorDecoration primarySectorsDecoration - used to decorate the primary sectors of out time picker
TimePickerSectorDecoration secondarySectorsDecoration - used to decorate the secondary of out time picker
TimePickerClockNumberDecoration clockNumberDecoration - Provides decoration options which will get applied to the internal clock's numbers when enable
SystemMouseCursor mouseCursor - Used to set SystemMouseCursor for PanGestureRecognizer

Guideline for contributors

  • Contribution towards our repository is always welcome, we request contributors to create a pull request for development.

Guideline to report an issue/feature request

It would be great for us if the reporter can share the below things to understand the root cause of the issue.

  • Library version
  • Code snippet
  • Logs if applicable
  • Device specification like (Manufacturer, OS version, etc)
  • Screenshot/video with steps to reproduce the issue
  • Library used

LICENSE!

progressive_time_picker is MIT-licensed.

Let us know!

We’d be really happy if you send us links to your projects where you use our open-source libraries. Just send an email to [sales@mindinventory.com](mailto:sales@mindinventory.com) And do let us know if you have any questions or suggestion regarding our work.

Visit our website mindinventory.com

Let us know if you are interested to building Apps or Designing Products.

flutter app development

所属分类

源码仓库

使用此插件的项目

暂无相关数据。