ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

WheelPickerCompose WheelDateTimePicker 解析:Compose 日期时间滚轮选择器全参数与双轮联动机制,10分钟上手

WheelPickerCompose WheelDateTimePicker 解析:Compose 日期时间滚轮选择器全参数与双轮联动机制,10分钟上手 WheelPickerCompose WheelDateTimePicker 解析Compose 日期时间滚轮选择器全参数与双轮联动机制10分钟上手【免费下载链接】WheelPickerComposeAdd Wheel Date - Time Picker in Android Jetpack Compose.项目地址: https://gitcode.com/gh_mirrors/wh/WheelPickerComposeWheelPickerCompose是一个 Android Jetpack Compose 轮选器组件库其中的WheelDateTimePicker日期时间选择器让你一行代码就能在 App 里加上滚轮拨号式的日期 时间选择器支持范围限制、12/24 小时制、月份天数自适应等实用特性最低兼容 API 21。30秒认识 WheelDateTimePickerWheelDateTimePicker 把「日期轮」和「时间轮」横向并排在一个滚轮组里日期轮日、月、年三个可滚动列年列可隐藏时间轮时、分两列切换 12 小时制后自动多出 AM/PM 列联动任意一列停稳吸附后整体选中的LocalDateTime立即更新且超出限制范围会自动弹回核心入口函数定义在 WheelDateTimePicker.kt内部组装逻辑在 DefaultWheelDateTimePicker.kt。最快接入两步装好日期时间滚轮选择器在settings.gradle的 repositories 中加入maven { url https://jitpack.io }在依赖中添加一行implementation com.github.commandiron:WheelPickerCompose:1.1.11⚠️ 若最低版本低于 API 26需开启coreLibraryDesugaring以支持java.time。然后在 Compose 界面里一行调用即可拿到选中结果WheelDateTimePicker { snappedDateTime - // 滚轮停稳后回调返回完整的 LocalDateTime println(snappedDateTime) }更多完整示例可参考 Demo 应用的 MainActivity.kt。WheelDateTimePicker 全参数速查表参数默认值作用startDateTime当前时间初始选中的日期时间minDateTime/maxDateTime不限选择范围的上下限超出自动弹回yearsRange1922..2122年份列范围传null则隐藏年份列日/月平分宽度timeFormatHOUR_24HOUR_2424小时制或AM_PM12小时制多出 AM/PM 列size256dp × 128dp整个选择器尺寸日期轮与时间轮按比例分配宽度rowCount3可见行数调大如 5滚动视野更宽textStyle/textColorMaterial3 主题滚轮文字样式与颜色selectorProperties主题高亮框选中高亮条的开关、圆角、填充色、边框onSnappedDateTime空滚轮吸附停稳时的回调参数为LocalDateTime双轮联动机制日与时如何握手 联动的核心是单一数据源内部只维护一个snappedDateTime精确到分钟状态。拆解分发日期轮组件DefaultWheelDatePicker.kt与时间轮组件DefaultWheelTimePicker.kt通过Row并排摆放各自只负责渲染和滚动。回调汇聚任一列停稳后通过onSnappedDate/onSnappedTime回调类型见 SnappedDateTime.kt 中的密封类Day/Month/Year/Hour/Minute 五种事件把新值合并到共享状态例如snappedDateTime.withMonth(...)。范围校验合并后先检查是否落在minDateTime ~ maxDateTime区间内合法才写入状态非法则不更新。自动回弹回调返回一个校正后的索引滚轮组件据此执行scrollToItem让用户看到滚轮弹回最近合法值——所以不可能选出超出范围的时间。 细节亮点切换月份/年份时日期列会按该月实际天数含闰年 2 月 29 日自动重建不会出现2 月 31 日这种无效选项。滚动手感是怎么实现的滚轮列基于LazyColumn Snapper 惯性吸附库见 WheelPicker.kt每个条目随距离选中位动态计算X 轴旋转rotationX最大约 ±20°营造立体滚筒感透明度渐变离选中位越远越淡聚焦中央时间格式切换时12 小时制的 12 点边界12:xx AM 00 时由amPmHourToHour24等工具函数内部换算对外始终输出标准LocalDateTime业务侧无需关心格式差异。常见场景配置建议预约下单minDateTime LocalDateTime.now()防止选择过去时间生日选择器yearsRange 1950..2020收窄年份列紧凑布局rowCount 5 较小size一眼看到更多候选项暗黑风格用WheelPickerDefaults.selectorProperties自定义高亮条颜色与边框小结WheelPickerCompose 的 WheelDateTimePicker 以共享状态 事件回调 范围校验三步实现日期与时间的无缝联动配合 Snapper 吸附动画几乎零成本获得原生的滚轮选时体验。搭配同库的 WheelDatePicker.kt 与 WheelTimePicker.kt日期、时间、日期时间三类选择场景一站搞定。【免费下载链接】WheelPickerComposeAdd Wheel Date - Time Picker in Android Jetpack Compose.项目地址: https://gitcode.com/gh_mirrors/wh/WheelPickerCompose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表