Android实现仿iOS风格滚动时间选择器
添加依赖:
implementation 'com.contrarywind:Android-PickerView:4.1.9'
代码实现:
@SuppressLint("UseKtx")
fun showCustomDatePicker(date: Date) {val pvTime = TimePickerBuilder(requireActivity(), OnTimeSelectListener { date, _ ->// 日期选择回调val selectedDate = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(date)}).setType(booleanArrayOf(true, true, true, false, false, false)) // 显示年月日.setLabel("年", "月", "日", "", "", "") // 单位标签.setTitleText("选择日期") // 标题文字.setContentTextSize(20) // 滚轮文字大小.setTitleSize(16) // 标题文字大小.setTitleColor(Color.BLACK) // 标题文字颜色.setSubmitColor(Color.parseColor("#007AFF")) // 确定按钮文字颜色(iOS蓝).setCancelColor(Color.parseColor("#007AFF")) // 取消按钮文字颜色.setBgColor(Color.WHITE) // 背景颜色.setDate(Calendar.getInstance().apply {time = date}) // 默认选中当前日期.setRangDate( // 设置日期范围Calendar.getInstance().apply { add(Calendar.YEAR, -10) }, // 10年前Calendar.getInstance().apply { add(Calendar.YEAR, 10) } // 10年后).setDividerColor(Color.parseColor("#007AFF")) // 分割线颜色.setTextColorCenter(Color.BLACK) // 选中项文字颜色.setTextColorOut(Color.parseColor("#a8a8a8")) // 未选中项文字颜色.isCenterLabel(true) // 是否只显示中间选中项的label文字.isDialog(false) // 是否显示为对话框样式.build()pvTime.show()
}
效果展示: