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

calendar_day_slot_navigator 封面
套件詳情v0.0.2

calendar_day_slot_navigator

日曆天槽導航器是一個可自訂的Flutter組件,用於選擇日期,支援多種色彩主題、日期選擇情境與佈局自訂。

AndroidiOSmacOSWindowsLinux
近 30 天下載
60
喜歡數
25
Pub 分數
150

安裝套件

flutter pub add calendar_day_slot_navigator

套件介紹

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

日曆天數時段導航器是一個可自定義的Flutter組件,專為在靈活的佈局選項和多種色彩方案下選擇日期而設計。它支援各種日期選擇情境,包括單一與多重選擇,並讓開發者能根據應用程式設計需求調整外觀與行為。此組件以跨平台相容性為設計重點,可在Android、iOS、macOS、Windows及Linux上順暢運作。該組件非常適合需要直覺式日曆互動且具高視覺自訂功能的應用。

適用情境

  • 日程安排應用中的日期選擇
  • 預訂系統與日期可用性
  • 活動規劃介面
  • 生產力工具中的自定義日曆檢視
  • 使用者資料設定,包含出生日期輸入

主要特色

  • 多色彩調支援
  • 靈活的佈局自訂
  • 跨平台相容性
  • 支援單一與多個日期選擇
  • 可設定的日期區塊外觀

適合對象

  • 開發基於日曆功能的開發者
  • 需要視覺上明顯區分的日期選擇器的應用程式
  • 需要跨平台日期選擇的項目
  • 具有自定義UI需求的設計導向應用程式
  • 帶有日期輸入的互動式表單

使用建議

  • 需要理解 Flutter widget 組合
  • 可能需要額外的樣式來支援複雜主題
  • 有限的內建地區化支援
  • 大日期範圍的效能影響
  • 依賴外部套件更新以修復錯誤

原始 README

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

📅 Calendar_Day_Slot_Navigator

A powerful and highly customizable Flutter calendar widget that makes date selection beautiful and intuitive. Whether you're building a booking app, scheduling system, or any application that needs elegant date picking, CalendarSlot provides the flexibility and features you need.

✨ Features

  • 🌗 Theming Support

    • Seamless integration with both light and dark modes
    • Full control over colors and gradients
    • Customizable active and inactive states
  • 🎨 Advanced Customization

    • Flexible border radius for all elements
    • Custom header text and styling
    • Adjustable day box dimensions and borders
    • Support for custom fonts including Google Fonts
  • 📆 Powerful Selection Options

    • Single date selection
    • Date range selection
    • Customizable active/inactive date ranges
    • Multiple calendar layout options
  • 🎯 Flexible Display Modes

    • Inside box day display
    • Outside box day display
    • Adjustable slot length for different view sizes

🚀 Getting Started

Installation

Add calendar_day_slot_navigator to your project by including it in your pubspec.yaml:

dependencies:
  calendar_day_slot_navigator: ^0.0.1

Run pub get to install the package:

flutter pub get
Import

Import the package in your Dart file:

import 'package:calendar_day_slot_navigator/calendar_day_slot_navigator.dart';

💻 Usage Examples

Basic Implementation

Here's a simple example to get you started:

CalendarDaySlotNavigator(
  slotLength: 5,
  initialSelectedDate: DateTime.now(),
  dayDisplayMode: DayDisplayMode.outsideDateBox,
  headerText: "Select Date",
  onDateSelect: (selectedDate) {
    print("Selected date: $selectedDate");
  },
)
Custom Styling

Add beautiful gradients and custom styling:

CalendarDaySlotNavigator(
  slotLength: 7,
  dayBoxHeightAspectRatio: 8,
  initialSelectedDate: DateTime.now(),
  dayDisplayMode: DayDisplayMode.insideDateBox,
  isGradientColor: true,
  activeGradientColor: LinearGradient(
    colors: [
      Color(0xffb644ae),
      Color(0xff873999),
    ],
    begin: Alignment.topLeft,
    end: Alignment.bottomRight,
  ),
  monthYearTabBorderRadius: 15,
  dayBoxBorderRadius: 10,
  headerText: "Select Your Preferred Date",
  fontFamilyName: "Roboto",
  isGoogleFont: true,
  dayBorderWidth: 0.5,
  onDateSelect: (selectedDate) {
    print("Selected date: $selectedDate");
  },
)
Date Range Selection

Implement date range selection with specific active dates:

CalendarDaySlotNavigator(
  dateSelectionType: DateSelectionType.activeRangeDates,
  rangeDates: [
    DateTime(2024, 6, 1),
    DateTime(2024, 6, 2),
    DateTime(2024, 6, 3),
    DateTime(2024, 6, 4),
    DateTime(2024, 6, 5),
  ],
  onDateSelect: (selectedDate) {
    print("Selected date within range: $selectedDate");
  },
)

🛠️ Properties Guide

Essential Properties
Property Type Default Description
slotLength int? 7 📏 Determines how many days are displayed in each row. Useful for different screen sizes and layouts.
dayBoxHeightAspectRatio double? 6.0 📐 Controls the height of day boxes relative to their width. Higher values make boxes shorter.
dayDisplayMode DayDisplayMode outsideDateBox 🎯 Determines where day names appear relative to date boxes. Choose between outsideDateBox or insideDateBox.
Styling Properties
Property Type Default Description
activeColor Color? Theme primary 🎨 Background color for selected dates
deActiveColor Color? White ⚪️ Background color for unselected dates
isGradientColor bool? false 🌈 Enable gradient backgrounds for dates
activeGradientColor LinearGradient? null 🎨 Custom gradient for selected dates
deActiveGradientColor LinearGradient? null ⚪️ Custom gradient for unselected dates
monthYearTabBorderRadius double? 10.0 📏 Border radius for month/year selection tabs
dayBoxBorderRadius double? 8.0 📏 Border radius for individual day boxes
dayBorderWidth double? 1.0 ✏️ Width of borders around day boxes
Font Properties
Property Type Default Description
fontFamilyName String? System 🔤 Name of the font family to use
isGoogleFont bool? false 📱 Set to true when using Google Fonts
Selection Properties
Property Type Description
dateSelectionType DateSelectionType 🎯 Controls which dates can be selected
rangeDates List<DateTime>? 📅 List of dates for range-based selection types
onDateSelect Function(DateTime)? 🖱️ Callback function when a date is selected
initialSelectedDate DateTime 📍 Sets the default selected date when calendar first loads
Date Selection Types Explained
  1. activeAllDates

    • All dates in the calendar are selectable
    • Useful for unrestricted date picking
  2. activePastDates

    • Only dates before today are selectable
    • Perfect for selecting historical dates
  3. activeFutureDates

    • Only dates after today are selectable
    • Ideal for booking systems and scheduling
  4. activeTodayAndPastDates

    • Today and all past dates are selectable
    • Good for recording past events including today
  5. activeTodayAndFutureDates

    • Today and all future dates are selectable
    • Great for appointment scheduling
  6. activeRangeDates

    • Only specified dates in rangeDates are selectable
    • Useful for custom date ranges
  7. deActiveRangeDates

    • Specified dates in rangeDates are not selectable
    • Perfect for blocking out unavailable dates

📱 Display Modes

Outside Date Box Mode
dayDisplayMode: DayDisplayMode.outsideDateBox
  • Day names appear above the date boxes
  • Provides a clean, separated look
  • More space for date numbers
Inside Date Box Mode
dayDisplayMode: DayDisplayMode.insideDateBox
  • Day names appear inside the date boxes
  • More compact layout
  • Ideal for space-conscious designs

🎨 Styling Tips

  1. Color Combinations

    activeColor: Color(0xffb644ae),    // Purple for selected
    deActiveColor: Color(0xffF5F5F5),  // Light grey for unselected
    
  2. Gradient Effects

    isGradientColor: true,
    activeGradientColor: LinearGradient(
      colors: [Color(0xffb644ae), Color(0xff873999)],
      begin: Alignment.topLeft,
      end: Alignment.bottomRight,
    ),
    
  3. Border Styling

    dayBoxBorderRadius: 12,
    dayBorderWidth: 0.5,
    

💡 Best Practices

  1. Responsive Design

    • Adjust slotLength based on screen width
    • Use appropriate dayBoxHeightAspectRatio for different screen sizes
  2. Selection Types

    • Choose appropriate dateSelectionType for your use case
    • Always handle onDateSelect callback for user interactions
  3. Accessibility

    • Use sufficient color contrast
    • Provide clear header text
    • Consider font size and readability

🤝 Contributing


Made with ❤️ by the DevCodeSpace

所屬分類

依賴

依賴清單 4 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。