A highly customizable calendar view and compose library for Android.
Compose:
SnapFlingBehavior
provided by the compose framework for pagination instead of the snapper
library.Compose:
Fix: LazyList item applies wrong modifier.
Compose:
ContentHeightMode
enum which determines how the height of the day content is calculated.null
header and footer parameters.View:
DaySize
behavior implementation.View:
rectangle
DaySize option that allows the calendar to fill the parent's size.View:
CalendarView
class with focus on performance. See the new view-based documenatation. The breaking changes are documented below.CalendarView
class:async()
methods have been removed as the calendar is now capable of handling really large date ranges without performance issues. The calendar data is generated as needed. The removed methods are setupAsync()
and updateMonthRangeAsync()
. Please use the methods setup()
and updateMonthData()
.
updateMonthRange()
method has been renamed to updateMonthData()
as it now allows you to optionally change the first day of the week if needed.
daySize
property is no longer the Size
class type with height
and width
values. It is now a DaySize
enum with three options - Square
, SeventhWidth
and FreeForm
. Please see the DaySize
enum documentation to understand each value.
inDateStyle
enum property has been removed as it is now redundant. The in-dates are present in each month data, you can choose to hide them on the view or keep them.
outDateStyle
enum property is still available. However, there are now two options EndOfRow
and EndOfGrid
. The previously available third option None
has been removed. You can simply hide the out-dates if you don't need them.
scrollMode
enum property is now a boolean type named scrollPaged
. Set this property to false
to have the previous ScrollMode.CONTINUOUS
scroll behavior or true
to have the previous ScrollMode.PAGED
behavior.
DayOwner
enum has been renamed to DayPosition
. The matching case values are:
DayOwner.PREVIOUS_MONTH
=> DayPosition.InDate
DayOwner.THIS_MONTH
=> DayPosition.MonthDate
DayOwner.NEXT_MONTH
=> DayPosition.OutDate
maxRowCount
property has been removed as there is now a WeekCalendarView
class that should be used if a week-based calendar is needed. The main CalendarView
class is used for the month calendar implementation.
hasBoundaries
property has been removed as it is no longer needed with the introduction of the week and month calendar implementations discussed above.
monthMarginStart
| monthMarginTop
| monthMarginEnd
| monthMarginBottom
properties have been merged into one monthMargins
property.
monthPaddingStart
| monthPaddingTop
| monthPaddingEnd
| monthPaddingBottom
properties have been removed as they provided no real benefit. You can create a custom monthViewClass
and set the paddings there if needed.