required this.onChanged,
required this.firstDate,
required this.lastDate,
required this.displayedMonth,
this.selectableDayPredicate,
this.dragStartBehavior = DragStartBehavior.start,
})
2.2 常见属性
| 属性 | 说明 | 取值 |
| :-: | :-: | :-: |
| 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(),
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
文末
我总结了一些Android核心知识点,以及一些最新的大厂面试题、知识脑图和视频资料解析。
以后的路也希望我们能一起走下去。(谢谢大家一直以来的支持)
部分资料一览:
- 330页PDF Android学习核心笔记(内含8大板块)
-
Android学习的系统对应视频
-
Android进阶的系统对应学习资料
- Android BAT大厂面试题(有解析)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
以后的路也希望我们能一起走下去。(谢谢大家一直以来的支持)
部分资料一览:
- 330页PDF Android学习核心笔记(内含8大板块)
[外链图片转存中…(img-X9UY7Z5f-1712760855278)]
[外链图片转存中…(img-7vt2heux-1712760855278)]
-
Android学习的系统对应视频
-
Android进阶的系统对应学习资料
[外链图片转存中…(img-6we6SmWs-1712760855278)]
- Android BAT大厂面试题(有解析)
[外链图片转存中…(img-UfciJ4h5-1712760855278)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!