ComposeCalendar
ComposeCalendar copied to clipboard
ComposeCalendar
This library provides a beautiful date picker for Jetpack Compose, following the latest material 3 guidelines.
Dependency
Make sure to add Maven Central to your repositories declarations:
repositories {
mavenCentral()
}
then add the latest ComposeCalendar version to your app/build.gradle file dependencies:
dependencies {
implementation 'com.squaredem:composecalendar:1.1.0'
}
How to use
Showing the calendar:
// first declare a variable that holds the dialog visibility state
val showDialog = rememberSaveable { mutableStateOf(false) }
// then show the dialog based on the state
if (showDialog.value) {
ComposeCalendar(
onDone = { it: LocalDate ->
// Hide dialog
showDialog.value = false
// Do something with the date
},
onDismiss = {
// Hide dialog
showDialog.value = false
}
)
}
Start date and interval
You can customize start, min and max dates. By default these are set as:
ComposeCalendar(
startDate = LocalDate.now(),
minDate = LocalDate.now(),
maxDate = LocalDate.MAX,
...
)
Note: currently min and max dates are being coerced respectively to year 1900 and 2100.
Top bar customization
You can choose whether to show or hide the top bar with the selected date.
You can also pass a custom DateFormat for the string.
ComposeCalendar(
...
showSelectedDate = true,
selectedDateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT)
)
What's next
- Date range selection (from date A to date B)
- Customizations (fonts, colors, date intervals)
- ...
I am open to suggestions! Please share your ideas and your needs.
License
ComposeCalendar is distributed under the terms of the Apache License (Version 2.0). See the license for more information.