Bigkoo / Android-PickerView

This is a picker view for android , support linkage effect, timepicker and optionspicker.(时间选择器、省市区三级联动)
Apache License 2.0
13.42k stars 3.44k forks source link

4.1.9 版本设置range后日期起始异常 #876

Open charmeleon2 opened 4 years ago

charmeleon2 commented 4 years ago

` val current = Calendar.getInstance()

    var mBirth = tv_birth.text.toString()
    mBirth="1996-02-03"
    LogUtils.w(mBirth)
    if (mBirth.isBlank()) {
        current[Calendar.YEAR] -= 24
    } else {
        current[Calendar.YEAR] = mBirth.substring(0, 4).toInt()
        current[Calendar.MONTH] = mBirth.substring(5, 7).toInt() - 1
        current[Calendar.DAY_OF_MONTH] = mBirth.substring(8, 10).toInt()
        LogUtils.w(mBirth.substring(0, 4).toInt(),mBirth.substring(5, 7).toInt() - 1, mBirth.substring(8, 10).toInt())
    }
    val start = Calendar.getInstance()
    start[Calendar.YEAR] -= 60
    val end = Calendar.getInstance()
    end[Calendar.YEAR] -= 18
    val listener =
            OnTimeSelectListener { date, _ ->
                LogUtils.w(date)
                mBirth = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).format(date)
                tv_birth.text = mBirth
            }
    val picker = TimePickerBuilder(this, listener)
            .setType(booleanArrayOf(true, true, true, false, false, false))
            .setDate(current)
            .setRangDate(start, end)
            .setCancelText(getString(R.string.cancel))
            .setSubmitText(getString(R.string.determine))
            .setTitleSize(14)
            .setContentTextSize(14)
            .setSubCalSize(14)
            .setLineSpacingMultiplier(2.75f)
            .build()
    picker.show()`

这样一段代码,在4.1.9版本上,日期会从16号开始(准确说是今天的日期),1-15丢失(改成2月以外的月份没有这问题,或者去掉range限制,也是正常的),4.1.8版本没有这问题

FeelingAndroid commented 3 years ago

我也遇到了这个问题,选择任意年份的二月份,例如2020-2-1日,设置选中日期后打开展示数据为2020-2-3日且列表没有1日和2日,所有日期都往后推了两天然后实际选择回调结果是前两天的日期

wjk2813 commented 3 years ago

我也遇到了,setRangDate的同时setDate是二月的话,滚轮的天数会出现空白。。。

w296365959 commented 1 year ago

setRangDate 在4.1.9版本,可以设置开始范围是日期指定是1号 可以规避以上问题; 如val startDate = Calendar.getInstance() startDate.set(Calendar.DATE, 1)

tanzhixue commented 1 year ago

setRangDate 在4.1.9版本,可以设置开始范围是日期指定是1号 可以规避以上问题; 如val startDate = Calendar.getInstance() startDate.set(Calendar.DATE, 1)

有效果,感谢