[免费]纵享丝滑滑动切换的周月日历,丰富自定义日历样式,仿小米日历,基于material-calendarview (Android官方的CalendarView)实现,简洁高效,ViewDragHelper实现

项目结构:

MonthWeekMaterialCalendarView

样式.gif 水滴效果.gif p1.jpg p2.jpg

可以点击进去查看实现过程 纵享丝滑滑动切换的周月日历,水滴效果,丰富自定义日历样式,仿小米日历

之前开发任务中有涉及到年月日日历的切换效果,由于是需要联动,想到的方向大概有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

material-calendarview

下载地址:微信扫一扫,关注下方【毕业设计组织】公众号,请回复数字”6864“获取下载链接