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

套件詳情v2.1.0

datetime_picker_formfield_new

一個會發出 DateTime 的 TextFormField,可幫助顯示 Material、Cupertino 和其他樣式的選擇器對話方塊。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
8350
喜歡數
34
Pub 分數
140

安裝套件

flutter pub add datetime_picker_formfield_new

套件介紹

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

一個 Flutter 套件,提供可發出 DateTime 值並整合 Material、Cupertino 及其他樣式日期/時間選擇器對話方塊的 TextFormField。它透過在跨平台環境中結合輸入欄位與直覺的選擇器介面,簡化了表單處理。專為需要選擇日期或時間的表單設計,支援 Android、iOS、Web、macOS、Windows 與 Linux 等多個平台。該套件透過提供一致且適應平台的選取器,以最少設定增強使用者體驗。

適用情境

  • 需要選擇日期/時間的表單輸入
  • 跨平台日期/時間輸入
  • 與表單驗證的整合
  • 可自定義的選取器樣式
  • 動態表單欄位更新
  • 行動和網頁應用中的友善時間輸入

主要特色

  • 支援 Material 與 Cupertino 選取器
  • 發出 DateTime 物件
  • 跨平台相容性
  • 與 Form 小部件的輕鬆整合
  • 可自訂的對話框外觀
  • 內建驗證支援

適合對象

  • 開發跨平台表單的開發者
  • 需要原生外觀的日期/時間輸入應用程式
  • 重視跨裝置一致使用者體驗的團隊
  • 使用 Flutter 表單架構的專案
  • 希望日期選擇器程式碼量最少的使用者

使用建議

  • 需要 Flutter 2.0+
  • 可能需要額外的樣式來支援複雜主題
  • 僅限基本的日期/時間格式
  • 無內建的本地化支援
  • 依賴於底層平台的選擇器行為
  • 不適合高度自定義的選取器 UI

原始 README

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

DateTimeField

A TextFormField that emits DateTimes and helps show Material, Cupertino, and other style picker dialogs.

Fork with support for flutter >3.0.0

Example

See the example tab (example/lib/main.dart) for more.

screenshot.gif

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:datetime_picker_formfield/datetime_picker_formfield.dart';

// ...

class BasicDateField extends StatelessWidget {
  final format = DateFormat("yyyy-MM-dd");
  @override
  Widget build(BuildContext context) {
    return Column(children: <Widget>[
      Text('Basic date field (${format.pattern})'),
      DateTimeField(
        format: format,
        onShowPicker: (context, currentValue) {
          return showDatePicker(
            context: context,
            firstDate: DateTime(1900),
            initialDate: currentValue ?? DateTime.now(),
            lastDate: DateTime(2100),
          );
        },
      ),
    ]);
  }
}

class BasicTimeField extends StatelessWidget {
  final format = DateFormat("HH:mm");
  @override
  Widget build(BuildContext context) {
    return Column(children: <Widget>[
      Text('Basic time field (${format.pattern})'),
      DateTimeField(
        format: format,
        onShowPicker: (context, currentValue) async {
          final time = await showTimePicker(
            context: context,
            initialTime: TimeOfDay.fromDateTime(currentValue ?? DateTime.now()),
          );
          return DateTimeField.convert(time);
        },
      ),
    ]);
  }
}

class BasicDateTimeField extends StatelessWidget {
  final format = DateFormat("yyyy-MM-dd HH:mm");
  @override
  Widget build(BuildContext context) {
    return Column(children: <Widget>[
      Text('Basic date & time field (${format.pattern})'),
      DateTimeField(
        format: format,
        onShowPicker: (context, currentValue) async {
          return await showDatePicker(
            context: context,
            firstDate: DateTime(1900),
            initialDate: currentValue ?? DateTime.now(),
            lastDate: DateTime(2100),
          ).then((DateTime? date) async {
            if (date != null) {
              final time = await showTimePicker(
                context: context,
                initialTime:
                    TimeOfDay.fromDateTime(currentValue ?? DateTime.now()),
              );
              return DateTimeField.combine(date, time);
            } else {
              return currentValue;
            }
          });
        },
      ),
    ]);
  }
}

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案