パッケージ、リポジトリ、アプリカテゴリを検索

paged_vertical_calendar のカバー
パッケージ詳細v1.1.10

paged_vertical_calendar

カレンダーに基づくインターフェースを実装するためのシンプルなページネーションフレームワーク。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
8660
いいね数
129
Pub ポイント
160

パッケージをインストール

flutter pub add paged_vertical_calendar

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Flutterパッケージで、カレンダーに基づくインターフェースを構築するためのシンプルでページネーション対応の垂直カレンダーフレームワークを提供します。複数のプラットフォームで内蔵されたページネーションサポートにより、日付間のスムーズなナビゲーションが可能になります。垂直スクロールレイアウトで日付範囲を表示および操作するための軽量なソリューションを探している開発者向けに設計されています。スケジューリングアプリ、プランナー、または直感的な日付ブラウジングが必要な任意のアプリに最適です。

用途

  • スケジューリングアプリケーション
  • デイリープランナーインターフェース
  • 日付選択ウィジェット
  • イベント管理ダッシュボード
  • タイムトラッキングツール

主な機能

  • 垂直日付ページネーション
  • クロスプラットフォーム互換性
  • シンプルな統合
  • カスタマイズ可能な日付レンダリング
  • 組み込みのスクロール処理

適している対象

  • カレンダーUIを構築する開発者
  • 日付ナビゲーションが必要なアプリ
  • 軽量なカレンダーソリューション
  • Flutter初心者がUIパターンを学ぶ
  • マルチプラットフォームカレンダーアプリ

注意事項

  • 限定された事前構築されたスタイルオプション
  • 複雑なレイアウトにはカスタム実装が必要です
  • 組み込みのイベント管理なし
  • 横方向のカレンダーには最適化されていません
  • 高度な使用事例の最小構成

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

:calendar: Paged Vertical Calendar :calendar:

Pub Pub Pub

A simple paginated framework for implementing calendar based interfaces.

gif showing of package customizability gif showing dat range picker example gif showing paged data example

:hammer: How it works

paged_vertical_calendar is a very minimalistic framework that automatically loads months based on scoll behavior. It provides many useful callbacks to implement your own calendar interactions and builders to customize the calendar as much as you want. Check the example for several implementations like date range selection and paginated data visualisation.

PagedVerticalCalendar has no required parameters and can be dropped in anywhere providing it has a fixed height.

Scaffold(
  body: PagedVerticalCalendar(),
);

:loudspeaker: functionality

Several callback are provided to facilitate easy implementation of any calendar interactions

PagedVerticalCalendar(
  minDate: DateTime.now().subtract(Duration(days 365)),
  maxDate: DateTime.now().add(Duration(days 365)),
  initialDate: DateTime.now().add(Duration(days 3)),
  invisibleMonthsThreshold: 1,
  startWeekWithSunday: true,
  onMonthLoaded: (year, month) {
    // on month widget load 
  },
  onDayPressed: (value) {
    // on day widget pressed   
  },
  onPaginationCompleted: (direction) {
    // on pagination completion
  },
);
  • onMonthLoaded is a callback that fires for every month added to the list. When this function fires can be altered by setting the invisibleMonthsThreshold pararamter.

  • invisibleMonthsThreshold decides how many months outside of the widgets view should be loaded. In other words, how many months should be preloaded before the user reaches that scroll position. It defaults to 1.

  • onDayPressed Is a simple onPressed callback but also provides the DateTime of the day that has been pressed.

  • If your app is localized for countries where the week starts on Sunday, you can flip startWeekWithSundayto true.

  • If a minDate is provided the calendar will stop scrolling up at that date. make sure minDate < maxDate.

  • If a maxDate is provided the calendar will stop scrolling down at that date. make sure maxDate > minDate.

  • If an initialDate is provided the calendar start by displaying this date (otherwise DateTime.now()). make sure minDate < initialData < maxDate.

  • Finally when a minDate or maxDate is provided to the PagedVerticalCalendar, the onPaginationCompleted callback can be used. it will return a PaginationDirection to indicate what side of the calendar has been reached.

  • and many many more, see the docs!!!

:art: Customization

PagedVerticalCalendar provides default calendar styling, but these can be fully customized. To do so, several builders are provided:

PagedVerticalCalendar(
  monthBuilder: (context, month, year) {
    // provide a month header widget
  },
  dayBuilder: (context, date) {
    // provide a day widget
  },
  listPadding: // provide EdgeInset value
);
  • monthBuilder provides the year and month as integers. this builder has to return a widget that will form the header of ever month. the intl package works well here for date formatting.

  • dayBuilder provides the day as a DateTime. this builder wil be called for every day. You usually want to provide at least a text widget with the current day number.

  • listPadding can be provided in case you need the list to have padding.

:wave: Get Involved

If this package is useful to you please :thumbsup: on pub.dev and :star: on github. If you have any Issues, recommendations or pull requests I'd love to see them!

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト