CupertinoDatePicker切换年月时重置时分问题求助
解决CupertinoDatePicker切换日期时重置时分秒的问题
问题出在CupertinoDatePickerMode.date模式的默认行为上——当你选择新的年/月/日时,组件返回的newTime会自动将时分秒重置为00:00,因为该模式仅处理日期维度的选择,不会保留原时间信息。
要解决这个问题,只需要在更新日期时,保留原dateTimeStart和dateTimeEnd的时分秒部分,仅替换年、月、日:
修改后的关键代码片段
// 处理Start日期选择的回调 onDateTimeChanged: (DateTime newTime) { setState(() { dateTimeStart = DateTime( newTime.year, newTime.month, newTime.day, dateTimeStart.hour, // 保留原小时 dateTimeStart.minute, // 保留原分钟 dateTimeStart.second, // 保留原秒数 ); }); }, // 处理End日期选择的回调 onDateTimeChanged: (DateTime newTime) { setState(() { dateTimeEnd = DateTime( newTime.year, newTime.month, newTime.day, dateTimeEnd.hour, dateTimeEnd.minute, dateTimeEnd.second, ); }); },
这样修改后,无论你怎么切换年、月、日,之前设置的小时和分钟都会被保留下来,不会被重置为00:00。
内容的提问来源于stack exchange,提问作者CSP
相关产品推荐
相关产品推荐

