पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

omni_datetime_picker कवर
पैकेज विवरणv2.3.3

omni_datetime_picker

एक डेटाइम पिकर पैकेज जिसमें एकल डेटाइम पिकर या डेटाइम रेंज पिकर के उपयोग का विकल्प है।

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
39.9 हज़ार
लाइक
265
Pub अंक
160

पैकेज इंस्टॉल करें

flutter pub add omni_datetime_picker

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

OmniDateTimePicker एक Flutter पैकेज है जो लचीले तारीख और समय के चयन के साथ दोनों एकल समय चयनकर्ता और रेंज चयनकर्ता के समर्थन के साथ आता है। यह Android, iOS, Web, macOS, Windows और Linux पर एक सुसंगत, कस्टमाइज़ किए जा सकने वाले इंटरफ़ेस प्रदान करता है। इस पैकेज के माध्यम से फॉर्म, कैलेंडर और समय-सारणी ऐप में तारीख और समय के इनपुट को सरल बनाया जाता है, जिसमें उपयोगकर्ता एक या एक से अधिक तारीख/समय का चयन कर सकते हैं। Dart के साथ बनाया गया, यह Flutter प्रोजेक्ट में बिना किसी दिक्कत के एकीकृत होता है और स्थानीयकरण और थीम कस्टमाइज़ेशन का समर्थन करता है।

उपयोग

  • अपॉइंटमेंट निर्धारित करना
  • बुकिंग प्रणाली
  • घटना योजना उपकरण
  • तिथि/समय की आवश्यकता वाले फॉर्म इनपुट
  • कैलेंडर एप्लिकेशन
  • कार्य प्रबंधन इंटरफेस

मुख्य विशेषताएँ

  • एकल डेटाइम पिकर
  • रेंज डेटाइम पिकर
  • क्रॉस-प्लेटफॉर्म संगतता
  • कस्टमाइज़ किए गए थीम
  • स्थानीयकरण समर्थन
  • चिकनी एनीमेशन

इनके लिए उपयुक्त

  • तारीख़/समय इनपुट के साथ फॉर्म बना रहे विकासकर्ता
  • लचीले तारीख चयन की आवश्यकता वाले ऐप्स
  • कई प्लेटफॉर्म के लिए लक्षित प्रोजेक्ट
  • उपयोगकर्ता इंटरफेस-केंद्रित योजना विशेषताएँ
  • विकासक अनुभव पर ध्यान केंद्रित टीमें

विचार योग्य बातें

  • Flutter SDK 2.5 या उच्चतर की आवश्यकता है
  • मूल तारीख़/समय चयन तक सीमित (उन्नत कैलेंडर तर्क नहीं)
  • जटिल उपयोगकर्ता इंटरफेस के लिए अतिरिक्त स्टाइलिंग की आवश्यकता हो सकती है
  • चयन के अलावा कोई निर्मित वैधता नहीं है
  • कुछ सुविधाओं के लिए प्लेटफॉर्म-विशिष्ट नेटिव घटकों की आवश्यकता होती है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Omni DateTime Picker

pub package

A DateTime picker that lets user select a date and the time, with start & end as a range.

ko-fi

Screenshots

Light Dark
Omni DateTime Range Picker - Light Omni DateTime Range Picker - Dark

Getting started

Add this to your package's pubspec.yaml file and run flutter pub get:

dependencies:
  omni_datetime_picker: ^2.3.2

Now in your Dart code, you can use:

import 'package:omni_datetime_picker/omni_datetime_picker.dart';

Usage

Simple usage:

OmniDateTimePicker

DateTime? dateTime = await showOmniDateTimePicker(context: context);

OmniDateTimeRangePicker

List<DateTime>? dateTimeList = await showOmniDateTimeRangePicker(context: context);

Custom properties:

OmniDateTimePicker

DateTime? dateTime = await showOmniDateTimePicker(
                    context: context,
                    initialDate: DateTime.now(),
                    firstDate:
                        DateTime(1600).subtract(const Duration(days: 3652)),
                    lastDate: DateTime.now().add(
                      const Duration(days: 3652),
                    ),
                    is24HourMode: false,
                    isShowSeconds: false,
                    minutesInterval: 1,
                    secondsInterval: 1,
                    isForce2Digits: false,
                    borderRadius: const BorderRadius.all(Radius.circular(16)),
                    constraints: const BoxConstraints(
                      maxWidth: 350,
                      maxHeight: 650,
                    ),
                    transitionBuilder: (context, anim1, anim2, child) {
                      return FadeTransition(
                        opacity: anim1.drive(
                          Tween(
                            begin: 0,
                            end: 1,
                          ),
                        ),
                        child: child,
                      );
                    },
                    transitionDuration: const Duration(milliseconds: 200),
                    barrierDismissible: true,
                    barrierColor: const Color(0x80000000),
                    selectableDayPredicate: (dateTime) {
                      // Disable 25th Feb 2023
                      if (dateTime == DateTime(2023, 2, 25)) {
                        return false;
                      } else {
                        return true;
                      }
                    },
                    type: OmniDateTimePickerType.dateAndTime,
                    title: Text('Select Date & Time'),
                    titleSeparator: Divider(),
                    separator: SizedBox(height: 16),
                    padding: EdgeInsets.all(16),
                    insetPadding: EdgeInsets.symmetric(horizontal: 40, vertical: 24),
                    theme: ThemeData.light(),
                    actionsBuilder: (context, confirmCallback, cancelCallback) {
                      return Row(
                        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                        children: [
                          TextButton(
                            onPressed: cancelCallback,
                            child: Text('Cancel'),
                          ),
                          ElevatedButton(
                            onPressed: confirmCallback,
                            child: Text('Confirm'),
                          ),
                        ],
                      );
                    },
                  );

OmniDateTimeRangePicker

List<DateTime>? dateTimeList =
                      await showOmniDateTimeRangePicker(
                    context: context,
                    startInitialDate: DateTime.now(),
                    startFirstDate:
                        DateTime(1600).subtract(const Duration(days: 3652)),
                    startLastDate: DateTime.now().add(
                      const Duration(days: 3652),
                    ),
                    endInitialDate: DateTime.now(),
                    endFirstDate:
                        DateTime(1600).subtract(const Duration(days: 3652)),
                    endLastDate: DateTime.now().add(
                      const Duration(days: 3652),
                    ),
                    is24HourMode: false,
                    isShowSeconds: false,
                    minutesInterval: 1,
                    secondsInterval: 1,
                    isForce2Digits: false,
                    isForceEndDateAfterStartDate: true,
                    onStartDateAfterEndDateError: () {
                      // Handle error when start date is after end date
                      print('Start date cannot be after end date!');
                    },
                    borderRadius: const BorderRadius.all(Radius.circular(16)),
                    constraints: const BoxConstraints(
                      maxWidth: 350,
                      maxHeight: 650,
                    ),
                    transitionBuilder: (context, anim1, anim2, child) {
                      return FadeTransition(
                        opacity: anim1.drive(
                          Tween(
                            begin: 0,
                            end: 1,
                          ),
                        ),
                        child: child,
                      );
                    },
                    transitionDuration: const Duration(milliseconds: 200),
                    barrierDismissible: true,
                    barrierColor: Colors.black54,
                    startSelectableDayPredicate: (dateTime) {
                      // Disable 25th Feb 2023 for start date
                      if (dateTime == DateTime(2023, 2, 25)) {
                        return false;
                      } else {
                        return true;
                      }
                    },
                    endSelectableDayPredicate: (dateTime) {
                      // Disable 26th Feb 2023 for end date
                      if (dateTime == DateTime(2023, 2, 26)) {
                        return false;
                      } else {
                        return true;
                      }
                    },
                    type: OmniDateTimePickerType.dateAndTime,
                    title: Text('Select Date & Time Range'),
                    titleSeparator: Divider(),
                    startWidget: Text('Start'),
                    endWidget: Text('End'),
                    separator: SizedBox(height: 16),
                    defaultTab: DefaultTab.start,
                    padding: EdgeInsets.all(16),
                    insetPadding: EdgeInsets.symmetric(horizontal: 40, vertical: 24),
                    theme: ThemeData.light(),
                    actionsBuilder: (context, confirmCallback, cancelCallback) {
                      return Row(
                        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                        children: [
                          TextButton(
                            onPressed: cancelCallback,
                            child: Text('Cancel'),
                          ),
                          ElevatedButton(
                            onPressed: confirmCallback,
                            child: Text('Confirm'),
                          ),
                        ],
                      );
                    },
                  );

The returned value of showOmniDateTimeRangePicker() will be a List with two DateTime:

[startDateTime, endDateTime].

Usage with more flexibility

OmniDateTimePicker is now available for use directly as a widget instead of the prebuilt dialogs.

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 5 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट