Skip to content

CardDatePickerDialog 使用说明

LOPER7 edited this page Mar 29, 2023 · 12 revisions

最简单的使用方式

//kotlin CardDatePickerDialog.builder(this) .setTitle("SET MAX DATE") .setOnChoose {millisecond-> }.build().show() //java new CardDatePickerDialog.Builder(this) .setTitle("SET MAX DATE") .setOnChoose("确定", aLong -> { //aLong = millisecond return null; }).build().show();

所有可配置属性

 CardDatePickerDialog.builder(context) .setTitle("CARD DATE PICKER DIALOG") .setDisplayType(displayList) .setBackGroundModel(model) .showBackNow(true) .setPickerLayout(layout) .setDefaultTime(defaultDate) .setMaxTime(maxDate) .setMinTime(minDate) .setWrapSelectorWheel(false) .setThemeColor(color) .setAssistColor(color) .setDividerColor(color) .setChooseDateModel(DateTimeConfig.DATE_LUNAR) .showDateLabel(true) .showFocusDateInfo(true) .setTouchHideable(true) .setLabelText("","","","","") .setOnChoose("选择"){millisecond->} .setOnCancel("关闭") {} .build().show()

可配置属性说明

  • 设置标题
fun setTitle(value: String)
  • 是否显示回到当前按钮
fun showBackNow(b: Boolean)
  • 是否显示选中日期信息
fun showFocusDateInfo(b: Boolean)
  • 设置自定义选择器

自定义选择器Layout注意事详见 DateTimePicker 自定义

fun setPickerLayout(@NotNull layoutResId: Int)
  • 显示模式
// model 分为:CardDatePickerDialog.CARD//卡片,CardDatePickerDialog.CUBE//方形,CardDatePickerDialog.STACK//顶部圆角 // model 允许直接传入drawable资源文件id作为弹窗的背景,如示例内custom fun setBackGroundModel(model: Int)
  • 设置主题颜色
fun setThemeColor(@ColorInt themeColor: Int)
  • 设置辅助文字颜色
fun setAssistColor(@ColorInt assistColor: Int)
  • 设置分割线颜色
fun setDividerColor(@ColorInt dividerColor: Int)
  • 设置dialog选中日期信息展示格式
fun setChooseDateModel(model: Int)//1:DateTimeConfig.DATE_LUNAR 0:DateTimeConfig.DATE_DEFAULT
  • 设置显示值
//types:DateTimeConfig.YEAR,DateTimeConfig.MONTH,DateTimeConfig.DAY,DateTimeConfig.HOUR,DateTimeConfig.MIN,DateTimeConfig.SECOND fun setDisplayType(vararg types: Int)
//types:同上 fun setDisplayType(types: MutableList<Int>)
  • 设置默认时间
fun setDefaultTime(millisecond: Long)
  • 设置范围最小值
fun setMinTime(millisecond: Long)
  • 设置范围最大值
fun setMaxTime(millisecond: Long)
  • 是否显示单位标签
fun showDateLabel(b: Boolean)
  • 设置标签文字
/** *示例 *setLabelText("年","月","日","时","分") *setLabelText("年","月","日","时") *setLabelText(month="月",hour="时") */ fun setLabelText(year:String=yearLabel,month:String=monthLabel,day:String=dayLabel,hour:String=hourLabel,min:String=minLabel)
  • 设置是否循环滚动
/** *示例(默认为true) *setWrapSelectorWheel(false) *setWrapSelectorWheel(DateTimeConfig.YEAR,DateTimeConfig.MONTH,wrapSelector = false) *setWrapSelectorWheel(arrayListOf(DateTimeConfig.YEAR,DateTimeConfig.MONTH),false) */ fun setWrapSelectorWheel()
  • 绑定选择监听
/** *示例 *setOnChoose("确定") *setOnChoose{millisecond->} *setOnChoose("确定"){millisecond->} */ fun setOnChoose(text: String = "确定", listener: ((Long) -> Unit)? = null)
  • 绑定取消监听
/** *示例 *setOnCancel("取消") *setOnCancel{} *setOnCancel("取消"){} */ fun setOnCancel(text: String = "取消", listener: (() -> Unit)? = null)
  • 是否可以滑动关闭弹窗
/**  * 是否可以滑动关闭弹窗  * @param touchHideable 默认为 true  */ fun setTouchHideable(touchHideable:Boolean = true):Builder{ this.touchHideable = touchHideable return this }
  • 适配深色模式
//由于背景、DateTimePicker以及主题色均可由开发者灵活配置,为了兼容这些配置,所以适配深色模式需要调用以下几个方法进行设置。 //1.自定义dialog背景,为light/dark模式设置不同的值 builder.setBackGroundModel(if(isDark) R.drawable.shape_bg_dialog_dark else R.drawable.shape_bg_dialog_light) //2.自定义dialog辅助文字颜色 setAssistColor(if(isDark) darkColor else lightColor) //3.自定义dialog分割线颜色 setDividerColor(if(isDark) darkColor else lightColor) //这样深色模式就适配完成了,当然,以上三个方法的作用不仅可以用于适配深色模式,也可以传入更契合app主题的颜色,用于与app统一UI风格。

Clone this wiki locally