Flutter?日歷組件簡(jiǎn)單實(shí)現(xiàn)
前言
近期有個(gè)業(yè)務(wù)需求,涉及用戶付費(fèi)相關(guān)的計(jì)算,需要一個(gè)日歷組件,組件功能如下:
- 僅支持從明天開始選擇預(yù)定日期
- 僅支持可選范圍內(nèi)的日期
- 日期的選擇是連續(xù)的
- 有個(gè)推薦日期,需要聯(lián)動(dòng)更新
- todo:
- 支持不連續(xù)的日期選擇
Github:tw_calendar
安裝
dependencies: tw_calendar: latest_version
效果
demo 演示

業(yè)務(wù)使用 headerView

使用
配置屬性
/// 開始的年月份
final DateTime firstDate;
/// 結(jié)束的年月份
final DateTime lastDate;
/// 選擇開始日期
final DateTime? selectedStartDate;
/// 選擇結(jié)束日期
final DateTime? selectedEndDate;
/// 點(diǎn)擊方法回調(diào)
final Function? onSelectFinish;
/// 頭部組件
final Widget? headerView;
/// 選擇模式
final TWCalendarListSeletedMode? seletedMode;
/// 月視圖高度,為空則占滿剩余空間
final double? monthBodyHeight;
/// 周視圖高度, 默認(rèn) 48
final double? weekDayHeight;
/// 水平間隙
final double? horizontalSpace;
/// 確認(rèn)周視圖高度, 默認(rèn) 66
final double? ensureViewHeight;
/// 確認(rèn)按鈕的間隙
final EdgeInsetsGeometry? ensureViewPadding;
/// 確認(rèn)按鈕選中顏色
final Color? ensureViewSelectedColor;
/// 確認(rèn)未按鈕選中顏色
final Color? ensureViewUnSelectedColor;
/// 今天的日期的背景顏色
final Color? dayNumberTodayColor;
/// 選中日期背景顏色
final Color? dayNumberSelectedColor;
/// 確認(rèn)按鈕字體大小
final double? ensureTitleFontSize;
/// 點(diǎn)擊回調(diào)
final void Function(DateTime seletedDate, int seletedDays)? onSelectDayRang;
/// 選擇確認(rèn)按鈕 title 回調(diào)
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
以上就是Flutter 日歷組件簡(jiǎn)單實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Flutter 日歷組件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
android實(shí)現(xiàn)獲取有線和無(wú)線Ip地址的方法
這篇文章主要介紹了android實(shí)現(xiàn)獲取有線和無(wú)線Ip地址的方法,較為詳細(xì)的分析了Android獲取IP地址的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
Android編程實(shí)現(xiàn)定時(shí)發(fā)短信功能示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)定時(shí)發(fā)短信功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android定時(shí)發(fā)送短信功能的相關(guān)原理、實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下2017-09-09
Android中自定義ImageView添加文字設(shè)置按下效果詳解
這篇文章主要給大家介紹了關(guān)于Android中自定義ImageView添加文字設(shè)置按下效果的相關(guān)資料,實(shí)現(xiàn)后的效果非常利用用戶的體驗(yàn),文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)下吧。2017-08-08
鴻蒙開源第三方組件之連續(xù)滾動(dòng)圖像組件功能
這篇文章主要介紹了鴻蒙開源第三方組件之連續(xù)滾動(dòng)圖像組件功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Android多進(jìn)程間采用AIDL方式進(jìn)行通信
這篇文章主要為大家詳細(xì)介紹了Android多進(jìn)程間采用AIDL方式進(jìn)行通信,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
android支付寶客戶端html5網(wǎng)頁(yè)無(wú)法自動(dòng)關(guān)閉問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了android支付寶客戶端html5網(wǎng)頁(yè)無(wú)法自動(dòng)關(guān)閉問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

