仿小米日历

作者: necer | 来源:发表于2017-09-19 10:56 被阅读0次

    仿MIUI日历

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

    支持自定义时间区间

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

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

    项目地址

    https://github.com/yannecer/NCalendar

    效果图

    效果图

    下载demo:

    http://fir.im/7lv4

    使用方法

    Gradle

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

    布局文件

    <com.necer.ncalendar.calendar.NCalendar
            android:id="@+id/ncalendar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:defaultCalendar="Month"
            app:firstDayOfWeek="Sunday"
            app:selectCircleColor="#3388ff">
    
            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
    
     </com.necer.ncalendar.calendar.NCalendar>
           
    
    

    日历包含一个月日历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<String> 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 指示圆点颜色

    相关文章

      网友评论

        本文标题:仿小米日历

        本文链接:https://www.haomeiwen.com/subject/lklwsxtx.html