scrollable_clean_calendar 1.5.0

SDKflutter
Platformandroidioswindowslinuxmacosweb

A clean calendar widget with vertical scroll, locale, and range selection date

Pub GitHub contributors

Scrollable Clean Calendar

A clean calendar widget with vertical scroll, locale and range selection date.

Contributors


Rodrigo Dobbin Fellows

Eduardo Natale

Fabio Fiuza

Filippo Pizzicola

Lucian Risso Correia

Installation

Add

scrollable_clean_calendar: 1.5.0

to your pubspec.yaml and run

flutter pub get

in the project's main folder.

Parameters

ScrollableCleanCalendar

ParameterTypeDefaultDescription
calendarControllerCleanCalendarControllerrequiredThe controller of ScrollableCleanCalendar
localeStringenThe language locale
scrollControllerScrollControllernullScroll controller, if you use this controller the Parameter initialFocusDate and the Functions scrollToMonth and jumpToMonth won't work since this override the scrollable list controller. Do not use them together or you will receive a nullPointer Exception
showWeekdaysbooltrueIf is to show or not the weekdays in calendar
layoutLayoutnullWhat layout (design) is going to be used. Important: layout is required if you don't use all the layout builders
spaceBetweenMonthAndCalendardouble24The space between month and calendar
spaceBetweenCalendarsdouble24The space between calendars
initialFocusDateDateTimenullInitial date that the calendar scroll should focus when open
scrollToMonthFunction({required DateTime date, double alignment = 0, required Duration duration, Curve curve = Curves.linear, List<double> opacityAnimationWeights = const [40, 20, 40]})nullAnimate the list over duration using the given curve such that the item at index ends up with its leading edge at the given alignment.
jumpToMonthFunction ({required DateTime date, double alignment = 0})nullImmediately, without animation, reconfigure the list so that the item at index's leading edge is at the given alignment.
calendarCrossAxisSpacingdouble4The horizontal space in the calendar dates
calendarMainAxisSpacingdouble4The vertical space in the calendar dates
paddingEdgeInsetsGeometryEdgeInsets.symmetric(horizontal: 16, vertical: 32)The parent padding
monthTextStyleTextStyleTheme.of(context).textTheme.headline6The label text style of month
monthTextAlignTextAlignTextAlign.leftThe label text align of month
weekdayTextStyleTextStyleTheme.of(context).textTheme.bodyText1The label text align of month
weekdayAspectRatiodouble1.0The aspect ratio of weekday items
dayTextStyleTextStyleTheme.of(context).textTheme.bodyText1The label text style of day
dayAspectRatiodouble1.0The aspect ratio of day items
daySelectedBackgroundColorColorTheme.of(context).colorScheme.primaryThe day selected background color
dayBackgroundColorColorTheme.of(context).colorScheme.surfaceThe day background color
daySelectedBackgroundColorBetweenColorTheme.of(context).colorScheme.primary.withOpacity(.3)The day selected background color that is between day selected edges
dayDisableBackgroundColorColorTheme.of(context).colorScheme.surface.withOpacity(.4)The day disable background color
dayDisableColorColorTheme.of(context).colorScheme.onSurface.withOpacity(.5)The day disable color
dayRadiusdouble6The radius of day items
monthBuilderWidget Function(BuildContext context, String month)nullA builder to make a customized month
weekdayBuilderWidget Function(BuildContext context, String weekday)nullA builder to make a customized weekday
dayBuilderWidget Function(BuildContext context, DayValues values)nullA builder to make a customized day of calendar

CleanCalendarController

ParameterTypeDefaultDescription
minDateDateTimerequiredObrigatory: The mininimum date to show
maxDateDateTimerequiredObrigatory: The maximum date to show
initialDateSelectedDateTimenullAn initial selected date
endDateSelectedDateTimenullThe end of selected range
weekdayStartintDateTime.mondayIn what weekday position the calendar is going to start
onDayTappedFunction(DateTime date)nullFunction when a day is tapped
onRangeSelectedFunction(DateTime minDate, DateTime? maxDate)nullFunction when a range is selected
onPreviousMinDateTappedFunction(DateTime date)nullWhen a date before the min date is tapped
onAfterMaxDateTappedFunction(DateTime date)nullWhen a date after max date is tapped
rangeModebooltrueIf the range is enabled
readOnlyboolfalseIf the Calendar Widget is on read-only mode

Layout.DEFAULT

ScrollableCleanCalendar(
  calendarController: calendarController,
  layout: Layout.DEFAULT,
),

Layout.BEAUTY

ScrollableCleanCalendar(
  calendarController: calendarController,
  layout: Layout.BEAUTY,
  calendarCrossAxisSpacing: 0,
),