| selectedDate | 选中后高亮显示日期 | DateTime |
| currentDate | 当前日期 | DateTime |
| onChanged | 用户选择日期函数 | ValueChanged |
| firstDate | 允许选择的开始日期 | DateTime |
| lastDate | 允许选择的结束日期 | DateTime |
| displayedMonth | 展示日期 | DateTime |
| selectableDayPredicate | 用户的可选日期 | SelectableDayPredicate |
2.3 示例
代码
DateTime _selectedDate = DateTime.now();
Text(“DayPicker-示例”),
Flexible(
child: DayPicker(
selectableDayPredicate: (date) {return date.difference(DateTime.now()).inMilliseconds < 0;},
selectedDate: _selectedDate,
currentDate: DateTime.now(),
onChanged: (date) {
setState(() {
_selectedDate = date;
});
},
firstDate: DateTime(2021, 4, 3),
lastDate: DateTime(2021, 4, 31),
displayedMonth: DateTime(2021, 4),
),
)
效果图
三 CalendarDatePicker(代替DayPicker)
3.1 构造方法
CalendarDatePicker({
Key? key,
required DateTime initialDate,
required DateTime firstDate,
required DateTime lastDate,
DateTime? currentDate,
required this.onDateChanged,
this.onDisplayedMonthChanged,
this.initialCalendarMode = DatePickerMode.day,
this.selectableDayPredicate,
})
3.2 说明
-
CalendarDatePicker是用来替代DayPicker的
-
需要使用父容器如Flexible或者规定宽和高
3.3 示例
代码
DateTime _selectedDate = DateTime.now();
Text(“CalenderDayPicker-示例”),
Flexible(
child: CalendarDatePicker(
initialDate: DateTime.now(),
firstDate: DateTime(2021, 4, 3),
lastDate: DateTime(2021, 04, 30),
onDateChanged: (date) {
_selectedDate = date;
},
selectableDayPredicate: (date) {
return date.difference(DateTime.now()).inMicroseconds < 0;
},
))
效果图
[外链图片转存中…(img-Sf1aEppc-1713357280357)]
4.1 说明
-
MonthPicker跟DayPicker界面展示和属性功能基本一致
-
MonthPicker也是过时类,被CalendarDatePicker替代
4.2 示例
代码
Text(“MonthPicker-示例”),
MonthPicker(
selectedDate: _selectedDate,
onChanged: (date) {
setState(() {
_selectedDate = date;
});
},
firstDate: DateTime(2020, 1),
lastDate: DateTime(2020, 12),
),
效果图
[外链图片转存中…(img-VENab37B-1713357280359)]
5.1 说明
-
YearPicker跟DayPicker的属性类似
-
YearPicker只有年份展示,并不包含月份和日期
5.2 示例
代码
Text(“YearPicker”),
Flexible(
child: YearPicker(
selectedDate: _selectedDate,
onChanged: (date) {
setState(() {
_selectedDate = date;
});
},
dragStartBehavior: DragStartBehavior.start,
firstDate: DateTime(2000, 1),
lastDate: DateTime(2021, 12),
)),
效果图
[外链图片转存中…(img-6Ms96dKV-1713357280360)]
6.1 说明
-
showDatePicker
并不是一个新的控件 -
长跟按钮的点击事件连用,点击后弹出日期选择框
6.2 示例
代码
Text(“showDatePicker”),
RaisedButton(child: Text(“选择日期”),
onPressed: () async {
var result = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2020),
lastDate: DateTime(2030));
print(‘$result’);
},
)
效果图
[外链图片转存中…(img-rHSGrH5i-1713357280361)]
示例2-设置主题(builder)
代码
RaisedButton(child: Text(“选择日期”),
onPressed: () async {
var result = await showDatePicker(
builder: (context, child) {
return Theme(
data: ThemeData.dark(),
child: child,
);
},
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2020),
lastDate: DateTime(2030));
print(‘$result’);
},
)
效果图
七 CupertinoDatePicker-仿IOS时间控件
7.1 示例
Text(“IOS风格-时间控件”),
Flexible(child: CupertinoDatePicker(
use24hFormat: true,
initialDateTime: _selectedDate,
onDateTimeChanged: (date) {
setState(() {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/4a5a3e3840d8ad45725e34d408a29c00.jpeg)
最后
现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!
Android架构师之路很漫长,一起共勉吧!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
,可以扫码获取!!(备注:Android)**
![](https://i-blog.csdnimg.cn/blog_migrate/4a5a3e3840d8ad45725e34d408a29c00.jpeg)
最后
现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水!
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!
Android架构师之路很漫长,一起共勉吧!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!