horizontal_calendar_plus 0.0.3 copy "horizontal_calendar_plus: ^0.0.3" to clipboard
horizontal_calendar_plus: ^0.0.3 copied to clipboard

A horizontal calendar widget with customizable features.

Horizontal Calendar Plus #

A customizable horizontal calendar widget for Flutter that displays a range of dates with various formatting options, background color settings, and custom designs. Ideal for displaying date ranges and supporting multiple languages in an intuitive UI format.

Features #

- Display a horizontal calendar with customizable date ranges
- Flexible date formatting for main labels and subtitles
- Active and inactive color customization
- Support for custom widget designs for each date
- Supports multiple languages: Hindi, Bengali, Nepali
- Scrolls to the current date or a specified date
- Built-in utility to update the displayed date in real-time

Installation #

Add horizontal_calendar_plus to your pubspec.yaml file:

Getting started #

  • ✅ Add this package your yaml file
  dependencies: 
    horizontal_calendar_plus: 0.0.2

Usage #

  @override
  void initState() {
    super.initState();
    // Start date time updater  
    HorizontalCalendarPlus.startDateTimeUpdater(_currentDateNotifier);

    //Always highlight current index
    HorizontalCalendarPlus.jumpToCurrentIndex(scrollController);
  }


    HorizontalCalendarPlus(
        currentDateNotifier: _currentDateNotifier, 
        padding: EdgeInsets.only(top: 15,left: 8,right: 8),
        scrollController: scrollController,
        calenderLabelformate: CalenderDateFormate.ABBR_WEEKDAY,
        calenderSubTitleformate: CalenderDateFormate.MONTH_DAY,
        designTypeCalender: DesignTypeCalender.DEFAULTDESIGN,
        boxelevation: 5,
        boxActiveBgColor: Colors.green,
        boxborderRadius: BorderRadius.circular(1),
        changelanguage: Changelanguage.NAPILE,
        cardViewDesign: CardContentView(
        hideIcon: false,
        ),
        
    ),

Build Custom Widget #

    designTypeCalender: DesignTypeCalender.CUSTOMDESIGN
    customWidgetbuilder: (context, dateTime, index) {
    final packageCore = PackageCore(builderIndex: index, dateTime: dateTime, countPreviesDate: 3);
    return Card(
        color:  packageCore.dateFormatePlus() == packageCore.checkCurrentDate() ?  Colors.green :  Colors.black,
        elevation: 2,
        shape: RoundedRectangleBorder(
            side: packageCore.dateFormatePlus() == packageCore.checkCurrentDate() ? BorderSide(width: 2,color: Colors.green) : BorderSide(width: 1,color: Colors.black),
            borderRadius: BorderRadius.circular(10),
        ),
        shadowColor: Colors.black,
        borderOnForeground: true,
        margin: EdgeInsets.all(2),
        clipBehavior: Clip.antiAliasWithSaveLayer,
        child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
            Text( // Label 
                packageCore.showTitle(CalenderDateFormate.MONTH_DAY.skeleton),
                style: TextStyle(fontSize: 14, fontWeight: FontWeight.normal),
            ),
            Text( // SubTitle text 
                packageCore.showSubTitle(CalenderDateFormate.WEEKDAY.skeleton), 
                style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            ],
        ),
        );
    },
        

Change Calender Date Formate & Card Content #

  // add [skeleton] return String 
  CalenderDateFormate.WEEKDAY.skeleton,
  CalenderDateFormate.MONTH_DAY.skeleton,

  // Card Content update card ui design 
   CardContent 

Customization #

Main Properties #

padding: Adjust padding around the calendar. totaldateCount: Set the total number of dates to display. countPreviesDate: Set how many previous dates are shown before the current date. boxheight: Height of each date box. boxelevation: Set the elevation for each date box.

Colors #

boxActiveBgColor: Background color for active (current) date. boxUnActiveBgColor: Background color for inactive dates. cardViewDesign: Customize title and subtitle colors for active/inactive dates, add an icon, and more

Custom Widgets and Designs #

customWidgetbuilder: Function to define a custom widget for each date. designTypeCalender: Select between DEFAULTDESIGN or CUSTOMDESIGN for the date display.

Language and Date Formatting #

changelanguage: Set the language to Hindi, Bengali, Nepali, or default (English). calenderLabelformate and calenderSubTitleformate: Customize the format of date labels and subtitles using predefined formats in CalenderDateFormate.

Date Utility Methods #

startDateTimeUpdater: Automatically updates the displayed date in real-time. jumpToCurrentIndex: Programmatically scroll to the current date.

Example: Start Real-Time Date Updates #

HorizontalCalendarPlus.startDateTimeUpdater(_currentDateNotifier, timeUpdateseconds: 1);

Available Date Formats (CalenderDateFormate) #

DAY: e.g., "d" WEEKDAY: Full weekday name ABBR_MONTH: Abbreviated month name (e.g., "Jan") YEAR_MONTH_DAY: e.g., "2024 January 1" And many more! See the CalenderDateFormate enum for full list.

Localization #

This package supports:

English (default) Hindi Bengali Nepali

changelanguage: Changelanguage.HINDI,

Package UI view #

Horizantal Calender plus

Next Goals #

  • ✅ Add more country Multiple country languages [HINDI, BANGLA, NAPILE, ENGLISH]
  • ✅ Issue solved & improve
  • ✅ Add more design template

horizontal_calendar_plus #

This README.md provides users with an overview, installation guide, usage instructions, customization options, and examples for using horizontal_calendar_plus. It also includes references to language settings and formatting options. Adjust the example and details as necessary to fit your final implementation.

11
likes
0
points
21
downloads

Publisher

unverified uploader

Weekly Downloads

A horizontal calendar widget with customizable features.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, intl

More

Packages that depend on horizontal_calendar_plus