commandiron / WheelPickerCompose

Add Wheel Date - Time Picker in Android Jetpack Compose.
Apache License 2.0
444 stars 54 forks source link
android android-lib android-sdk android-sdk-library compose-library date-picker jetpack-compose kotlin kotlin-library library picker time-picker uiview wheel-picker wheelpicker

WheelPickerCompose API

Add Wheel Date - Time Picker in Android Jetpack Compose.

Usage

Picker Usage
WheelDateTimePicker { snappedDateTime -> }
WheelDatePicker { snappedDate -> }
WheelTimePicker { snappedTime -> }
WheelTimePicker(timeFormat = TimeFormat.AM_PM) { snappedTime -> }

Features

```kotlin 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 -> } ```

Setup

  1. 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' }
       ...
    }
    } 
    ...
  2. Sync the project
  3. Add dependency
    dependencies {
    implementation 'com.github.commandiron:WheelPickerCompose:1.1.11'
    }
  4. < API 26 (optional)
    compileOptions {
    coreLibraryDesugaringEnabled true
    //
    }
    //
    dependencies {
    //
    coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.6"
    }