项目结构:
- 📁.idea
- 📁app
- 📁calendarLibrary
- 📁gradle/wrapper
- 📝.gitignore
- 📝LICENSE
- 📝QRCode.png
- 📝README.md
- 📝build.gradle
- 📝gradle.properties
- 📝gradlew
- 📝gradlew.bat
- 📝monthweekview.apk
- 📝settings.gradle
MonthWeekMaterialCalendarView
可以点击进去查看实现过程 纵享丝滑滑动切换的周月日历,水滴效果,丰富自定义日历样式,仿小米日历
之前开发任务中有涉及到年月日日历的切换效果,由于是需要联动,想到的方向大概有3种,要么通过处理view的touch事件,要么是通过自定义behavior去实现,要么是通过ViewDragHelper这个神器去实现,网上比较多的是通过自定义bahavior去实现,本文使用的是第三种方法,实现的是一个可高度定制自由切换的周月日历视图,提供一种思路去实现页面联动效果。
features
- 可以控制是否允许左右滑动,上下滑动,切换年月
- 流畅的上下周月模式切换
- 允许选择农历和普通日历
- 丰富自定义日历样式
- 设置每周的第一天
- 设置某一天不允许选中
- 基于material-calendarview 这个库实现,可以下载源码根据需求定制效果
更新日志
V1.7
支持grid and staggeredgrid layoutManager
Usages
step 1 : 添加依赖
step 2: 添加布局
step 3: 如何使用
- 底部的recyclerView的layoutManager要实现ILayoutManager接口,设置是否允许上下滑动, 例如示例中的CustomLinearLayoutManager.java
设置当前日期,日历才会滚动到对应日期
设置选中日期
添加日历的样式,例如红点 或者自定义图案
移除日历样式
设置当前的模式
跳转到上一个月
跳转到下个月
设置是否允许竖直拖动,默认是允许拖动切换周月模式
设置是否允许左右滑动
添加选中日期、模式改变 或者月份改变的回调
设置选中颜色
定制用法
如果你想给单独的日期视图设置一些样式的话,例如周末右上角有个图标这样子的需求之类的话,你可以写一个类继承自DayViewDecorator
- shouldDecorate()这个方法是判断是否需要添加Decorator的条件
- decorate()这个方法可以对显示样式做一些操作
DayViewFacade 可以通过setSelectionDrawable(),setBackgroundDrawable(),addSpan()设置样式,尤其是addSpan的方法,因为你传进去的是一个span,所以你可以在里面做很多自定义样式的操作,例如 RestSpan.java周末右上角加个图标。
还可以怎么用
License
thanks
下载地址:微信扫一扫,关注下方【毕业设计组织】公众号,请回复数字”6864“获取下载链接
