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

flutter_datetime_picker_plus のカバー
パッケージ詳細v3.0.1

flutter_datetime_picker_plus

Flutter用の日時ピッカー。英語、オランダ語、中国語で日付/時刻/日付と時刻を選択でき、独自のピッカー内容もカスタマイズ可能です。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
5.3万
いいね数
171
Pub ポイント
140

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

flutter pub add flutter_datetime_picker_plus

パッケージ概要

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

Flutter用のカスタマイズ可能な日付と時刻ピッカーで、英語、オランダ語、中国語で日付、時刻、または両方を選択できます。ローカライズされたインターフェースを提供し、開発者がアプリの特定のニーズに合わせてピッカーのコンテンツをカスタマイズできるようにしています。Android、iOS、Web、macOS、Windows、Linuxすべてのプラットフォームで互換性があり、すべてのプラットフォームでスムーズなユーザー体験を提供します。このパッケージは、統合のしやすさとUIカスタマイズの柔軟性を目的としています。

用途

  • 日時選択が必要なフォーム入力
  • マルチリンガルアプリケーション
  • カスタマイズ可能な日付/時刻ピッカー
  • クロスプラットフォーム日時入力
  • 使いやすいカレンダーインターフェース
  • ローカライズされたアプリ体験

主な機能

  • 日付、時刻および併用選択をサポート
  • 英語、オランダ語、中国語に対応
  • カスタマイズ性の高いUI
  • クロスプラットフォーム互換性
  • pub.dev を通じた簡単な統合
  • Localization-ready

適している対象

  • 多言語アプリを開発する開発者
  • 柔軟な日付/時刻入力が必要なアプリ
  • プラットフォーム全体の整合性を求めるプロジェクト
  • カスタマイズ可能なピッカーを希望するチーム
  • ユーザーエクスペリエンスを重視したフォーム設計
  • 国際化されたモバイルおよびウェブアプリ

注意事項

  • 非対応言語には手動設定が必要です
  • カスタマイズは複雑性を増加させる可能性があります
  • 拡張されない限り、事前定義されたロケールに限定される
  • 高度なカスタマイズによるパフォーマンスへの影響
  • 一貫した外観を確保するために追加のスタイル設定が必要になる場合があります
  • Flutterバージョンの互換性に依存しています

元の README

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

Flutter Datetime Picker Plus

Forked from (Pub) flutter_datetime_picker as it had issues with dart 3.0/Flutter 3.10.

This package only works on Flutter >=3.10.0. If you need an older version, please use the original package.

(Pub) flutter_datetime_picker_plus

Documentation

A flutter date time picker inspired by flutter-cupertino-date-picker

you can choose date / time / date&time in multiple languages:

  • Albanian(sq)
  • Arabic(ar)
  • Armenian(hy)
  • Azerbaijani(az)
  • Basque(eu)
  • Bengali(bn)
  • Bosnian(bs)
  • Bulgarian(bg)
  • Catalan(cat)
  • Chinese(zh)
  • Chinese, Traditional(tw)
  • Croatian(hr)
  • Czech(cs)
  • Danish(da)
  • Dutch(nl)
  • English(en)
  • Finnish(fi)
  • French(fr)
  • German(de)
  • Greek(gr, el)
  • Hebrew(he)
  • Hindi(hi)
  • Indonesian(id)
  • Italian(it)
  • Japanese(jp)
  • Kazakh(kk)
  • Khmer(kh)
  • Korean(ko)
  • Mongolian(mn)
  • Norwegian(no)
  • Persian(fa)
  • Polish(pl)
  • Portuguese(pt)
  • Russian(ru)
  • Serbian(sr)
  • Slovak(sk)
  • Slovenian(si, sl)
  • Spanish(es)
  • Swedish(sv)
  • Tamil(ta)
  • Thai(th)
  • Turkish(tr)
  • Ukrainian(uk)
  • Vietnamese(vi)

and you can also custom your own picker content

Date picker Time picker Date Time picker

International:

Date Time picker (Chinese) Date Time picker (America) Date Time picker (Dutch) Date Time picker (Russian)

Demo App

main page

Usage

TextButton(
    onPressed: () {
        DatePicker.showDatePicker(context,
                              showTitleActions: true,
                              minTime: DateTime(2018, 3, 5),
                              maxTime: DateTime(2019, 6, 7), onChanged: (date) {
                            print('change $date');
                          }, onConfirm: (date) {
                            print('confirm $date');
                          }, currentTime: DateTime.now(), locale: LocaleType.zh);
    },
    child: Text(
        'show date time picker (Chinese)',
        style: TextStyle(color: Colors.blue),
    ));

Customize

If you want to customize your own style of date time picker, there is a class called CommonPickerModel, every type of date time picker is extended from this class, you can refer to other picker model (eg. DatePickerModel), and write your custom one, then pass this model to showPicker method, so that your own date time picker will appear, it’s easy, and will perfectly meet your demand

How to customize your own picker model:

class CustomPicker extends CommonPickerModel {
  String digits(int value, int length) {
    return '$value'.padLeft(length, "0");
  }

  CustomPicker({DateTime currentTime, LocaleType locale}) : super(locale: locale) {
    this.currentTime = currentTime ?? DateTime.now();
    this.setLeftIndex(this.currentTime.hour);
    this.setMiddleIndex(this.currentTime.minute);
    this.setRightIndex(this.currentTime.second);
  }

  @override
  String leftStringAtIndex(int index) {
    if (index >= 0 && index < 24) {
      return this.digits(index, 2);
    } else {
      return null;
    }
  }

  @override
  String middleStringAtIndex(int index) {
    if (index >= 0 && index < 60) {
      return this.digits(index, 2);
    } else {
      return null;
    }
  }

  @override
  String rightStringAtIndex(int index) {
    if (index >= 0 && index < 60) {
      return this.digits(index, 2);
    } else {
      return null;
    }
  }

  @override
  String leftDivider() {
    return "|";
  }

  @override
  String rightDivider() {
    return "|";
  }

  @override
  List<int> layoutProportions() {
    return [1, 2, 1];
  }

  @override
  DateTime finalTime() {
    return currentTime.isUtc
        ? DateTime.utc(currentTime.year, currentTime.month, currentTime.day,
            this.currentLeftIndex(), this.currentMiddleIndex(), this.currentRightIndex())
        : DateTime(currentTime.year, currentTime.month, currentTime.day, this.currentLeftIndex(),
            this.currentMiddleIndex(), this.currentRightIndex());
  }
}
Custom title bar

By default every picker shows a Cancel/Done bar above the wheels. Pass a titleActionsBuilder to any DatePicker.show* method to replace it with your own widget. The builder receives onCancel / onConfirm callbacks (which dismiss the picker the same way the default buttons do) and the currently selected DateTime:

DatePicker.showDatePicker(
  context,
  titleActionsBuilder: (context, onCancel, onConfirm, currentTime) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: [
        TextButton(onPressed: onCancel, child: const Text('Close')),
        Text('${currentTime.year}-${currentTime.month}-${currentTime.day}'),
        TextButton(onPressed: onConfirm, child: const Text('Pick')),
      ],
    );
  },
);

The bar is laid out within the theme's titleHeight, so keep your widget within that height (or raise titleHeight via a custom DatePickerTheme). The builder is only used when showTitleActions is true (the default).

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing package code, view the documentation.

カテゴリー

依存関係

依存関係一覧 2 件

ソースリポジトリ

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