技术标签: flutter 年月日
老
孟
一枚
有态度
的程序员
注意:无特殊说明,Flutter版本及Dart版本如下:
Flutter版本:1.12.13+hotfix.5
Dart版本:2.7.0
DatePicker
Flutter并没有DatePicker这个控件,需要使用showDatePicker方法弹出日期选择控件,基本用法如下:
RaisedButton(
onPressed: () async {
var result = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2020),
lastDate: DateTime(2021));
print('$result');
},
)
initialDate初始化时间,通常情况下设置为当前时间。
firstDate表示开始时间,设置后,选择器不能选择小于此值的时间。
lastDate表示结束时间,设置后,选择器不能选择大于此值的时间。
showDatePicker方法是Future方法,点击日期选择控件的“确定按钮后,返回选择的日期。
效果如下:
selectableDayPredicate参数控制可选日期,返回true表示日期可选,用法如下:
showDatePicker(
selectableDayPredicate: (DateTime day) {
return day.difference(DateTime.now()).inDays < 2;
},
...
)
表示后天之前的时间可选,效果如下:
19日及以后的日期变为灰色,不可选状态。
builder参数用于设置设置子控件,比如设置深色主题用法如下:
showDatePicker(
builder: (context, child) {
return Theme(
data: ThemeData.dark(),
child: child,
);
},
...
)
效果如下:
中文支持
增加国际化处理,在pubspec.yaml添加支持:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
在顶级控件MaterialApp添加国际化支持:
MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('zh', 'CH'),
const Locale('en', 'US'),
],
locale: Locale('zh'),
...
)
设置showDatePicker的local参数如下:
showDatePicker(
locale: Locale('zh'),
...
)
效果如下:
TimePicker
TimePicker和DatePicker一样,需要使用showTimePicker方法,用法如下:
RaisedButton(
onPressed: () async {
showTimePicker(
context: context, initialTime: TimeOfDay.now());
},
)
效果如下:
builder参数用于控制子控件,可以向DatePicker一样设置深色主题,还可以设置其显示24小时,用法如下:
showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
builder: (context, child) {
return MediaQuery(
data: MediaQuery.of(context)
.copyWith(alwaysUse24HourFormat: true),
child: child,
);
});
效果如下:
中文支持
添加国际化支持,步骤同DatePicker中文支持,但showTimePicker并没有local参数,使用builder参数设置,如下:
showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
builder: (context, child) {
return Localizations(
locale: const Locale('zh'),
child: child,
delegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
]
);
});
效果如下:
CupertinoDatePicker
ios风格的日期选择器,用法如下:
var _dateTime = DateTime.now();
CupertinoDatePicker(
initialDateTime: _dateTime,
onDateTimeChanged: (date) {
setState(() {
_dateTime = date;
});
},
)
效果如下:
mode参数设置日期的格式:
time:只显示时间,效果:4 | 14 | PM
date:只显示日期,效果:July | 13 | 2012
dateAndTime:时间和日期都显示,效果: Fri Jul 13 | 4 | 14 | PM
设置最大日期和最小日期:
CupertinoDatePicker(
minimumDate: DateTime.now().add(Duration(days: -1)),
maximumDate: DateTime.now().add(Duration(days: 1)),
...
)
效果如下:
使用24小时制:
CupertinoDatePicker(
use24hFormat: true,
...
)
CupertinoTimerPicker
CupertinoTimerPicker 是ios风格的时间选择器,基本用法如下:
CupertinoTimerPicker(
onTimerDurationChanged: (Duration duration){
},
)
效果如下:
设置只显示小时和分钟:
CupertinoTimerPicker(
mode: CupertinoTimerPickerMode.hm,
...
)
默认情况下,CupertinoTimerPicker显示0:0:0,设置显示当前时间:
var now = DateTime.now();
return Container(
height: 200,
child: CupertinoTimerPicker(
initialTimerDuration: Duration(hours: now.hour,minutes: now.minute,seconds: now.second),
onTimerDurationChanged: (Duration duration) {},
),
);
欢迎加入Flutter的微信交流群(mqd_zzy),一起学习,一起进步,生活不止眼前的苟且,还有诗和《远方》。
今天的文章对大家是否有帮助?如果有,请在文章底部留言和点赞,以表示对我的支持,你们的留言、点赞和转发关注是我持续更新的动力!
更多相关阅读:
老孟
一枚有态度的程序员
戳原文,查看Flutter系列总览
文章浏览阅读347次。Linux安装yum报错安装 yum install gcc-c++yum install gcc-c++Loaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfileYumRepo Error: All mirror URLs are not using ftp, http[s] or file.Eg_设置更新进程 loading mirror speeds from cached hostfile yumrepo error: all m
文章浏览阅读835次。重排reflow:DOM的变化影响到了元素的宽高,导致浏览器要重新计算元素的宽高(影响到页面布局),甚至影响到渲染数中的某些部分就需要重新渲染。改变窗口大小、文字大小、内容变化、浏览器窗口大小、style属性的改变等会导致重排。重排一定会导致重绘。重绘不一定导致重排。重绘repaint:一个元素的外观发生了改变,但是没有改变元素的宽高,比如改变元素的背景色、outline、visibility...
文章浏览阅读2.6w次,点赞4次,收藏35次。 R语言在处理矩阵运算的时候较java和python来说更加容易,因为R语言本身就是一个统计学使用的软件。再已有的运用R进行的研究中,矩阵是比较常用的一种计算方法,下面对本次编程中矩阵的使用方法做一个总结。1、产生一个服从泊松分布的随机数矩阵 首先,产生一组服从泊松分布的随机数:rpois(M,..._r语言生成随机数矩阵
文章浏览阅读2.2k次。My version of rails is 4.0.0, my version of mysql is Ver 14.14 Distrib 5.7.9, for Win64 (x86_64). I am operating of an older version of rails as I was getting some clashes with the mysql as per my pre...
文章浏览阅读701次。公司有个测试服务器,上面跑了几个应用和一个DB。 DB被这个几个应用使用。 最近老是被挂掉。 CPU 使用率100%。搞到最后大家都不能用。 敲个命令都没反应。 TOP命令显示的是一些Oracle session占用CPU资源太多。杯具的是在服务器上连sqlplus 都进不去了,命令都没反应。 只好把服务器重启了。 重启之后再看了一下,是一个同事测试的SQL 有问题。 一条SQL 占用CPU 就3
文章浏览阅读2.9k次。当数据(可能是一个文件,一个程序,一段文字等)从A传递到B时,通过第2和3章的加密可以保证只有拥有密钥者(B)才可读取这段信息,实现了安全性编程中内容的保密性要求。但安全性编程还要求具有不可篡改性(B接收到数据后需要确认数据在传输过程中是否被别人修改过,发生纠纷时A需要检查B是否修改过原始数据)、身份的确定性(B要能够确认数据确实是A发来的)以及不可否认性(发生纠纷时,B能够证明数据确实是由A发来_计算消息
文章浏览阅读156次。创建一个asp.netcore项目,可以到到startup类有两个方法 // This method gets called by the runtime. Use t...
文章浏览阅读175次。没有技术,哪来的项目?项目经理不懂技术,客户提需求不知该接不该接改需求被技术人员开怼,最后两边不是人难道……不懂技术的项目经理就注定要当背锅侠?请见本周百人社话题讨论1不懂技术的项目经理如何管理项目?没有团队凝聚力,哪来的项目顺利?人员不服管,干活不积极,项目一倒,PM挨刀。。那么,该如何让团队成员高效完成工作,提升团队凝聚力?团建暗藏玄机请见本周百人社话题讨论2项目团队要怎么做团建才有..._怎样有效总结啥都不懂的项目
文章浏览阅读2.5k次。需要用到两个版本的ffmpeg,文件及原码请到项目地址自取https://gitee.com/z2322739526/m3u8主要解决ts改后缀mp4后无法上传网盘播放的问题,所以需要完整处理下tomp4.py费时费电脑,转码速度大约6分钟共处理总计5分钟视频完整代码如下m3u8.pytomp4.py合并mp4.bat..._m3u8转mp4 python
文章浏览阅读1.9w次,点赞5次,收藏31次。导入数据import pandas as pdmovie= pd.read_csv('movie.csv')movie.head()Rank Title Genre Description Director ... Runtime (Minutes) Rating Votes Revenue (Millions) Metascore 0 1 Guardians of the Galaxy Action,Adven_pandas 统计分位数中位数
文章浏览阅读586次。0. YUV模型介绍光的三原色是红(Red)、绿(Green)、蓝(Blue)。现代的显示器技术就是通过组合不同强度的三原色,来达成任何一种可见光的颜色。图像储存中,通过记录每个像素红绿蓝强度,来记录图像的方法,称为RGB模型 (RGB Model)常见的图片格式中,PNG和BMP这两种就是基于RGB模型的。比如说原图:分别只显示R G B通道的强度,效果如下:三个通道下,信息量和细节程度不一定是均匀分布的。比如说可以注意南小鸟脸上的红晕,在3个平面上的区分程度就不同——红色平面下几乎无从_色度 平面
文章浏览阅读536次。南京理工大学考研计算机复试上机题目三是近几年的南理上机题, 年上机题) (一.二.三是近几年的南理上机题,四是 09 年上机题) 《一》 一 1. 从键盘输入一个带有数字的字符串,将其中数字所在的位置输出,并把字符串小写字符变大写再输出。 例:输入 ab2cd3ef4 按回车输出 3 6 9 AB2CD3EF4 2. 验证这句话:任何一个大于 6 的偶数都可以分解为两个素数之和。要求:输入一个大于..._南理工上机操作步骤