diff --git a/lib/time_picker/route/date_picker_route.dart b/lib/time_picker/route/date_picker_route.dart index 715e6cb..1da54c1 100644 --- a/lib/time_picker/route/date_picker_route.dart +++ b/lib/time_picker/route/date_picker_route.dart @@ -389,6 +389,7 @@ class _PickerState extends State<_PickerContentView> { _setMonth(); break; case DateType.Day: + _setDay(); break; case DateType.Hour: _setHour(); @@ -540,6 +541,40 @@ class _PickerState extends State<_PickerContentView> { } } + void _setDay() { + /// 小时的变化 + if (_dateItemModel.hour) { + int index = 0; + int begin = 0; + int end = 23; + // 限制区域 + if (intNotEmpty(minDate.hour)) { + begin = minDate.hour!; + } + if (intNotEmpty(maxDate.hour) && + _selectData.year == maxDate.year && + _selectData.month == maxDate.month && + _selectData.day == maxDate.day + ) { + end = maxDate.hour!; + } + + _dateTimeData.hour = TimeUtils.calcHour(begin: begin, end: end); + + if (_initSelectData.hour != null) { + index = _dateTimeData.hour.indexOf(_initSelectData.hour); + index = index < 0 ? 0 : index; + } + // setState(() { + // _selectData.hour = _dateTimeData.hour[index]; + // scrollCtrl[DateType.Hour] = + // FixedExtentScrollController(initialItem: index); + // }); + _setHour(); + _setMinute(); + } + } + void _setHour() { // 可能造成 分 秒 list的改变 if (_dateItemModel.minute) { @@ -554,7 +589,12 @@ class _PickerState extends State<_PickerContentView> { if (intNotEmpty(minDate.minute) && _selectData.hour == minDate.hour) { beginMinute = minDate.minute!; } - if (intNotEmpty(maxDate.minute) && _selectData.hour == maxDate.hour) { + if (intNotEmpty(maxDate.minute) && + _selectData.year == maxDate.year && + _selectData.month == maxDate.month && + _selectData.day == maxDate.day && + _selectData.hour == maxDate.hour + ) { endMinute = maxDate.minute!; }