WheelPickerCompose
Add Wheel Date - Time Picker in Android Jetpack Compose.
This is a forked project adding a new feature and accessibility improvement -> Original project
Picker
Usage
WheelDateTimePicker { snappedDateTime -> }
WheelDatePicker { snappedDate -> }
WheelTimePicker { snappedTime -> }
WheelTimePicker(timeFormat = TimeFormat.AM_PM) { snappedTime -> }
WheelDateTimePicker (
startDateTime = LocalDateTime .of(
2025 , 10 , 20 , 5 , 30
),
minDateTime = LocalDateTime .now(),
maxDateTime = LocalDateTime .of(
2025 , 10 , 20 , 5 , 30
),
timeFormat = TimeFormat .AM_PM ,
size = DpSize (200 .dp, 100 .dp),
rowCount = 5 ,
textStyle = MaterialTheme .typography.titleSmall,
textColor = Color (0xFFffc300 ),
selectorProperties = WheelPickerDefaults .selectorProperties(
enabled = true ,
shape = RoundedCornerShape (0 .dp),
color = Color (0xFFf1faee ).copy(alpha = 0.2f ),
border = BorderStroke (2 .dp, Color (0xFFf1faee ))
)
){ snappedDateTime -> }
GroupedWheelDateTimePicker (
startDateTime = LocalDateTime .of(
2023 , 6 , 22 , 5 , 30
),
minDateTime = LocalDateTime .of(
2023 , 4 , 20 , 5 , 30
),
maxDateTime = LocalDateTime .of(
2023 , 10 , 20 , 5 , 30
),
todayLabel = " Today" ,
dateFormat = DateTimeFormatter .ofPattern(" EEE d MMM yy" ),
timeFormat = TimeFormat .HOUR_24 ,
size = DpSize (300 .dp, 200 .dp),
rowCount = 5 ,
textStyle = MaterialTheme .typography.bodyLarge,
textColor = Color (0xFFFFFFFF ),
selectorProperties = WheelPickerDefaults .selectorProperties(
enabled = true ,
shape = RoundedCornerShape (5 .dp),
color = Color (0xFF036AB3 ).copy(alpha = 0.2f ),
border = BorderStroke (1 .dp, Color (0xFF036AB3 ))
)
) { println (it) }
Open the file settings.gradle (it looks like that)
dependencyResolutionManagement {
repositoriesMode. set(RepositoriesMode . FAIL_ON_PROJECT_REPOS )
repositories {
google()
mavenCentral()
// add jitpack here 👇🏽
maven { url ' https://jitpack.io' }
.. .
}
}
.. .
Sync the project
Add dependency
dependencies {
implementation ' com.github.KDVL:WheelPickerCompose:2.0.0'
}
< API 26 (optional)
compileOptions {
coreLibraryDesugaringEnabled true
//
}
//
dependencies {
//
coreLibraryDesugaring " com.android.tools:desugar_jdk_libs:1.1.6"
}