无法设置默认时间
jiangdongguo opened this issue · 5 comments
如果是自己获取默认时间戳,显示的默认时间是错的。
比如:
val calendar = Calendar.getInstance().apply {
add(Calendar.MONTH, -2)
}
calendar.timeInMillis
当设置了最大时间时,默认时间却不是当前时间前2个月的时间。不设置最大时间,显示就是正常的。
如果是自己获取默认时间戳,显示的默认时间是错的。
比如:val calendar = Calendar.getInstance().apply { add(Calendar.MONTH, -2) } calendar.timeInMillis当设置了最大时间时,默认时间却不是当前时间前2个月的时间。不设置最大时间,显示就是正常的。
需要检查一下默认时间是否与最大时间或最小时间的设定冲突了
详见更新日志->0.1.1->修复范围最大值,范围最小值,选中默认值之间冲突时约束异常问题(规则为:最大范围值与最小范围值存在冲突时,后设置的值不会生效;选中默认值与范围最大值/范围最小值存在冲突时,不会生效)
如果是自己获取默认时间戳,显示的默认时间是错的。
比如:val calendar = Calendar.getInstance().apply { add(Calendar.MONTH, -2) } calendar.timeInMillis当设置了最大时间时,默认时间却不是当前时间前2个月的时间。不设置最大时间,显示就是正常的。
需要检查一下默认时间是否与最大时间或最小时间的设定冲突了
详见更新日志->0.1.1->修复范围最大值,范围最小值,选中默认值之间冲突时约束异常问题(规则为:最大范围值与最小范围值存在冲突时,后设置的值不会生效;选中默认值与范围最大值/范围最小值存在冲突时,不会生效)
麻烦试下这段代码:
CardDatePickerDialog.builder(this)
.setTitle("123")
.setDisplayType(arrayListOf(
DateTimeConfig.YEAR, DateTimeConfig.MONTH, DateTimeConfig.DAY
))
.setBackGroundModel(CardDatePickerDialog.STACK)
.showBackNow(false)
.setDefaultTime(Calendar.getInstance().apply {
add(Calendar.MONTH, -2)
}.timeInMillis)
.setMaxTime(Calendar.getInstance().timeInMillis)
.setMinTime(Calendar.getInstance().apply {
add(Calendar.MONTH, -10)
}.timeInMillis)
.setWrapSelectorWheel(false)
.setThemeColor(Color.parseColor("#FF8000"))
.showFocusDateInfo(true)
.setOnChoose("选择") {
tvChooseDate.text = "◉ ${StringUtils.conversionTime(it, "yyyy-MM-dd HH:mm:ss")} ${StringUtils.getWeek(it)}"
}
.setOnCancel("关闭") {
}.build().show()
如果是自己获取默认时间戳,显示的默认时间是错的。
比如:val calendar = Calendar.getInstance().apply { add(Calendar.MONTH, -2) } calendar.timeInMillis当设置了最大时间时,默认时间却不是当前时间前2个月的时间。不设置最大时间,显示就是正常的。
需要检查一下默认时间是否与最大时间或最小时间的设定冲突了
详见更新日志->0.1.1->修复范围最大值,范围最小值,选中默认值之间冲突时约束异常问题(规则为:最大范围值与最小范围值存在冲突时,后设置的值不会生效;选中默认值与范围最大值/范围最小值存在冲突时,不会生效)麻烦试下这段代码:
CardDatePickerDialog.builder(this) .setTitle("123") .setDisplayType(arrayListOf( DateTimeConfig.YEAR, DateTimeConfig.MONTH, DateTimeConfig.DAY )) .setBackGroundModel(CardDatePickerDialog.STACK) .showBackNow(false) .setDefaultTime(Calendar.getInstance().apply { add(Calendar.MONTH, -2) }.timeInMillis) .setMaxTime(Calendar.getInstance().timeInMillis) .setMinTime(Calendar.getInstance().apply { add(Calendar.MONTH, -10) }.timeInMillis) .setWrapSelectorWheel(false) .setThemeColor(Color.parseColor("#FF8000")) .showFocusDateInfo(true) .setOnChoose("选择") { tvChooseDate.text = "◉ ${StringUtils.conversionTime(it, "yyyy-MM-dd HH:mm:ss")} ${StringUtils.getWeek(it)}" } .setOnCancel("关闭") { }.build().show()
找到问题了,在为numberpicker设置选择约束的时候设置了最大选择值,在特定情况下,选中值会大于设置的最大值,然后就重置为最大值了,这个逻辑有点问题。
我处理了一下,待会儿push上来,有时间的话可以帮忙验证一下~
好的,优秀!