仿小米日历

仿MIUI日历

一款仿miui日历,月视图,周视图滑动切换,时间从1901-01-01到2099-12-31

支持自定义时间区间

支持农历,节假日,指示圆点,默认视图,周的第一天设置等

支持单一月日历、周日历设置默认选中和默认不选中

项目地址

https://github.com/yannecer/NCalendar

效果图

仿小米日历_第1张图片
效果图

下载demo:

http://fir.im/7lv4

使用方法

Gradle

compile 'com.necer.ncalendar:ncalendar:2.4.0'

布局文件



        

 
       

日历包含一个月日历MonthCalendar,一个周日历WeekCalendar和一个滑动切换不同视图的NCalendar,单一日历请使用MonthCalendar或者WeekCalendar

NCalendar日历包含了周日历和月日历,通过滑动切换不同的视图,交互效果仿miui日历,尽可能的实现miui的交互逻辑。

NCalendar内部需要一个实现了NestedScrollingChild的子类,RecyclerViewNestedScrollView都可以。

主要Api

1、监听
ncalendar.setOnCalendarChangedListener(new OnCalendarChangedListener() {
            @Override
            public void onCalendarChanged(DateTime dateTime) {
                //日历变化回调
            }
        });
2、跳转日期
参数为 yyyy-MM-dd 格式的日期

ncalendar.setDate("2017-12-31"); 
3、回到今天
ncalendar.toToday(); 
4、月-->周 周-->月
ncalendar.toWeek();
ncalendar.toMonth();
5、上一月、下一月、上一周、下一周
ncalendar.toNextPager();
ncalendar.toLastPager();
6、添加指示圆点
List list = new ArrayList<>();
list.add("2017-09-21");
list.add("2017-10-21");
list.add("2017-10-1");
list.add("2017-10-15");
list.add("2017-10-18");
list.add("2017-10-26");
list.add("2017-11-21");
ncalendar.setPoint(list);

7、支持自定义属性,设置NCalendar默认视图、一周的第一天是周日还是周一等
NCalendar默认视图,Month 或者 Week,默认是 Month

app:defaultCalendar="Month"
app:defaultCalendar="Week"


设置一周开始是周一还是周日,Sunday 或者 Monday ,默认是周日Sunday

app:firstDayOfWeek="Sunday"
app:firstDayOfWeek="Monday" 

8、支持自定义时间区间
app:startDate="2010-10-01"
app:endDate="2018-10-31"
9、单一月日历、周日历设置默认不选中
false为不选中,只有点击或者跳转日期才会选中,默认为true

monthcalendar.setDefaultSelect(false);

支持的属性:

属性 描述
solarTextColor 公历日期的文本颜色
lunarTextColor 农历日期的文本颜色
solarTextSize 公历日期的文本大小
lunarTextSize 农历日期的文本大小
hintColor 不是本月的日期文本颜色
selectCircleColor 选中日期和当天的圆颜色
selectCircleRadius 选中和当天圆环半径
isShowLunar 是否显示农历
hollowCircleColor 选中空心圆中间的颜色
hollowCircleStroke 选中空心圆圆环粗细
calendarHeight 日历高度,在NCalendar中使用
defaultCalendar NCalendar日历默认视图
firstDayOfWeek 每周第一天是周日还是周一
duration 自动折叠时间
isShowHoliday 是否显示节假日
holidayColor 节假日“休”字颜色
workdayColor 工作日日“班”字颜色
pointSize 指示圆点大小
pointColor 指示圆点颜色

你可能感兴趣的:(仿小米日历)