| 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;
},
))
效果图
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),
),
效果图
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),
)),
效果图
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’);
},
)
效果图
示例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开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
大家的负担。**
[外链图片转存中…(img-htlUe8u5-1715755398275)]
[外链图片转存中…(img-wMCp5NdL-1715755398276)]
[外链图片转存中…(img-7qZCZiTW-1715755398277)]
[外链图片转存中…(img-eC7kKyaI-1715755398280)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!