搜尋套件、儲存庫與 APP 分類

flutter_datetime_picker 封面
套件詳情v1.5.1

flutter_datetime_picker

一個用於 Flutter 的日期時間選擇器,您可以在英文、荷蘭語和中文中選擇日期/時間/日期和時間,並且還可以自訂您的選擇器內容

近 30 天下載
1.3萬
喜歡數
908
Pub 分數
60

安裝套件

flutter pub add flutter_datetime_picker

套件介紹

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

一個 Flutter 套件,提供可自訂的日期與時間選擇器,支援英文、荷蘭文與中文。它允許使用者選擇日期、時間或兩者,並提供自訂選擇器外觀與內容的選項。適合需要本地化日期時間輸入且具彈性 UI 設計的應用程式。此套件為開源,並於 GitHub 上維護,讓開發者能完全掌控選擇器的行為與呈現。

適用情境

  • 需要日期選擇的表單輸入
  • 基於時間的排程功能
  • 多語言應用介面
  • 可自定義的 UI 組件
  • 日期與時間範圍選擇器
  • 在地化使用者體驗

主要特色

  • 支援多種語言(英語、荷蘭語、中文)
  • 可自訂的選取器內容與樣式
  • 可選擇日期、時間或組合的日期時間模式
  • 開源,公開倉儲
  • 透過 pub.dev 實現輕鬆整合
  • 跨平台相容性

適合對象

  • 開發多語言應用程式的開發者
  • 需要本地化日期/時間輸入的應用程式
  • 希望擁有靈活選擇器的UI設計師
  • 需要輕量級日期時間選擇的專案
  • 使用 Flutter 進行移動與 Web 開發的團隊

使用建議

  • 未列出平台特定的自定選項
  • 除了基本用法之外,文件內容有限
  • 需要手動設定以進行進階自訂
  • 未明確設計用於無障礙存取
  • 複雜版面可能需要額外的依賴項

原始 README

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

Flutter Datetime Picker

(Pub) flutter_datetime_picker

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)
  • Azerbaijan(az)
  • Basque(eu)
  • Bengali(bn)
  • Bulgarian(bg)
  • Catalan(cat)
  • Chinese(zh)
  • Danish(da)
  • Dutch(nl)
  • English(en)
  • French(fr)
  • German(de)
  • Hebrew(he)
  • Indonesian(id)
  • Italian(it)
  • Japanese(jp)
  • Kazakh(kk)
  • Korean(ko)
  • Persian(fa)
  • Polish (pl)
  • Portuguese(pt)
  • Russian(ru)
  • Spanish(es)
  • Swedish(sv)
  • Thai(th)
  • Turkish(tr)
  • Vietnamese(vi)
  • Khmer(kh)

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());
  }
}

Getting Started

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

For help on editing package code, view the documentation.

所屬分類

原始碼儲存庫

使用此套件的專案