Flutter 日历组件简单实现
作者:zeqinjie 时间:2023-10-21 11:04:35
前言
近期有个业务需求,涉及用户付费相关的计算,需要一个日历组件,组件功能如下:
仅支持从明天开始选择预定日期
仅支持可选范围内的日期
日期的选择是连续的
有个推荐日期,需要联动更新
todo:
支持不连续的日期选择
Github:tw_calendar
安装
dependencies:
tw_calendar: latest_version
效果
demo 演示
业务使用 headerView
使用
配置属性
/// 开始的年月份
final DateTime firstDate;
/// 结束的年月份
final DateTime lastDate;
/// 选择开始日期
final DateTime? selectedStartDate;
/// 选择结束日期
final DateTime? selectedEndDate;
/// 点击方法回调
final Function? onSelectFinish;
/// 头部组件
final Widget? headerView;
/// 选择模式
final TWCalendarListSeletedMode? seletedMode;
/// 月视图高度,为空则占满剩余空间
final double? monthBodyHeight;
/// 周视图高度, 默认 48
final double? weekDayHeight;
/// 水平间隙
final double? horizontalSpace;
/// 确认周视图高度, 默认 66
final double? ensureViewHeight;
/// 确认按钮的间隙
final EdgeInsetsGeometry? ensureViewPadding;
/// 确认按钮选中颜色
final Color? ensureViewSelectedColor;
/// 确认未按钮选中颜色
final Color? ensureViewUnSelectedColor;
/// 今天的日期的背景颜色
final Color? dayNumberTodayColor;
/// 选中日期背景颜色
final Color? dayNumberSelectedColor;
/// 确认按钮字体大小
final double? ensureTitleFontSize;
/// 点击回调
final void Function(DateTime seletedDate, int seletedDays)? onSelectDayRang;
/// 选择确认按钮 title 回调
final String Function(
DateTime? selectStartTime, DateTime? selectEndTime, int seletedDays)?
onSelectDayTitle;
DEMO
TWCalendarList(
firstDate: TWCalendarTool.tomorrow,
lastDate: DateTime(2022, 11, 21),
selectedStartDate: DateTime(2022, 9, 2),
selectedEndDate: DateTime(2022, 9, 10),
monthBodyHeight: 300.w,
seletedMode: TWCalendarListSeletedMode.singleSerial,
headerView: Container(
alignment: Alignment.center,
height: 55.w,
child: Text(
'日历组件',
style: TextStyle(
color: TWColors.tw333333,
fontSize: 18.w,
),
),
),
onSelectDayRang: ((seletedDate, seletedDays) {
print('seletedDate : $seletedDate, seletedDays : $seletedDays');
}),
onSelectFinish: (selectStartTime, selectEndTime) {
print(
'selectStartTime : $selectStartTime, selectEndTime : $selectEndTime');
Navigator.pop(context);
},
)
感谢
参考及修改至 demo: flutter_calendar_list
来源:https://juejin.cn/post/7127970073897074702
标签:Flutter,日历,组件
0
投稿
猜你喜欢
RabbitMQ延迟队列及消息延迟推送实现详解
2023-11-15 15:31:31
Java Socket 编程详解
2022-06-13 12:06:57
Spring Data Jpa的四种查询方式详解
2021-10-10 10:35:26
Java并发包之CopyOnWriteArrayList类的深入讲解
2022-10-06 09:15:21
struts2实现多文件上传的示例代码
2022-03-09 23:40:54
Android编程实现圆角边框布局效果的方法
2021-06-07 08:54:01
Unity3D选择本地图片并加载
2023-11-20 09:25:05
详解Java利用同步块synchronized()保证并发安全
2021-09-12 12:15:07
JavaWeb中使用JavaMail实现发送邮件功能实例详解
2023-01-07 13:54:37
C#实现异步GET的方法
2022-08-17 11:52:55
Spring Data JPA实现动态查询的两种方法
2022-08-04 17:02:27
Android仿微信图片选择器ImageSelector使用详解
2023-04-08 22:28:02
Map集合之HashMap的使用及说明
2022-07-23 15:56:56
SpringMVC整合mybatis实例代码
2022-09-24 08:22:03
C# 获取IP及判断IP是否在区间
2021-10-06 23:44:50
C#实现把图片转换成二进制以及把二进制转换成图片的方法示例
2023-08-10 15:25:51
log4j配置失效日志中打印Debug信息问题
2022-10-12 10:13:12
Android 更新RecyclerView的好方法
2023-11-24 09:39:59
mybatis sum(参数) 列名作为参数的问题
2022-06-16 01:45:44
Java用邻接矩阵存储图的示例代码
2021-10-05 21:39:18