ios - 如何在颤动中为 CupertinoDatePicker 小部件设置最短时间?
问题描述
我可以为小部件设置最小日期,但是,我不希望用户能够选择过去的时间。我如何确保这一点?库比蒂诺日期选择器。
旁注:如何使“00”和“30”在分钟轮中只出现一次?下面是一些相关的代码片段。
final minDate = DateTime.now();
final difference = 30 - minDate.minute % 30;
final initialDate = minDate.add(Duration(minutes: difference));
Stack(
children: <Widget>[
CupertinoDatePicker(
minimumDate: minDate,
maximumDate: minDate.add(Duration(days: 7)),
initialDateTime: initialDate,
minuteInterval: 30,
onDateTimeChanged: (dateTime) {
// Do stuff
},
),
Align(
alignment: Alignment.topRight,
child: CupertinoButton(
child: Text("Done"),
onPressed: () {
Navigator.of(context).pop();
}),
),
],
),
解决方案
虽然您不能限制用户默认选择的时间,但只能限制日期。您可以在onDateTimeChanged
块中添加验证代码并防止这种情况发生。这不是一个很好的解决方法,但它可以确保您不会以最小的努力获得过去的时间。
推荐阅读
- android-camera2 - 如何使用android camera2处理视频的每一帧并在帧之间移动像素
- reactjs - React-Native 一次性绑定
- android - 与 LiveData 的数据绑定
使 BindingAdapter 上的值无效? - mysql - linux下安装RMySQL时如何选择MySQL版本
- php - 打印php数组值
- php - Laravel 任务计划与数据库中的 cron 列
- javascript - 成功登录时显示 LoggedIn 用户名 [代码中出现 JSX 和路由器相关错误] --
- java - 将 Groovy RootLoader 与 Java 8 SystemClassLoader 集成
- android - Xamarin Android:HttpRequestException:没有路由到主机
- git - 如何给出从 gitlab 获取提交历史记录和结帐的日期?