仿MIUI日歷
一款仿miui日歷赞咙,月視圖,周視圖滑動切換糟港,時間從1901-01-01到2099-12-31
支持自定義時間區(qū)間
支持農(nóng)歷攀操,節(jié)假日,指示圓點秸抚,默認(rèn)視圖速和,周的第一天設(shè)置等
支持單一月日歷、周日歷設(shè)置默認(rèn)選中和默認(rèn)不選中
項目地址
https://github.com/yannecer/NCalendar
效果圖
效果圖
下載demo:
使用方法
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日歷,盡可能的實現(xiàn)miui的交互邏輯鹿驼。
NCalendar
內(nèi)部需要一個實現(xiàn)了NestedScrollingChild
的子類欲低,RecyclerView
,NestedScrollView
都可以蠢沿。
主要Api
1伸头、監(jiān)聽
ncalendar.setOnCalendarChangedListener(new OnCalendarChangedListener() {
@Override
public void onCalendarChanged(DateTime dateTime) {
//日歷變化回調(diào)
}
});
2、跳轉(zhuǎn)日期
參數(shù)為 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河胎、支持自定義屬性,設(shè)置NCalendar默認(rèn)視圖虎敦、一周的第一天是周日還是周一等
NCalendar默認(rèn)視圖,Month 或者 Week游岳,默認(rèn)是 Month
app:defaultCalendar="Month"
app:defaultCalendar="Week"
設(shè)置一周開始是周一還是周日政敢,Sunday 或者 Monday ,默認(rèn)是周日Sunday
app:firstDayOfWeek="Sunday"
app:firstDayOfWeek="Monday"
8胚迫、支持自定義時間區(qū)間
app:startDate="2010-10-01"
app:endDate="2018-10-31"
9喷户、單一月日歷、周日歷設(shè)置默認(rèn)不選中
false為不選中访锻,只有點擊或者跳轉(zhuǎn)日期才會選中褪尝,默認(rèn)為true
monthcalendar.setDefaultSelect(false);
支持的屬性:
屬性 | 描述 |
---|---|
solarTextColor | 公歷日期的文本顏色 |
lunarTextColor | 農(nóng)歷日期的文本顏色 |
solarTextSize | 公歷日期的文本大小 |
lunarTextSize | 農(nóng)歷日期的文本大小 |
hintColor | 不是本月的日期文本顏色 |
selectCircleColor | 選中日期和當(dāng)天的圓顏色 |
selectCircleRadius | 選中和當(dāng)天圓環(huán)半徑 |
isShowLunar | 是否顯示農(nóng)歷 |
hollowCircleColor | 選中空心圓中間的顏色 |
hollowCircleStroke | 選中空心圓圓環(huán)粗細(xì) |
calendarHeight | 日歷高度,在NCalendar中使用 |
defaultCalendar | NCalendar日歷默認(rèn)視圖 |
firstDayOfWeek | 每周第一天是周日還是周一 |
duration | 自動折疊時間 |
isShowHoliday | 是否顯示節(jié)假日 |
holidayColor | 節(jié)假日“休”字顏色 |
workdayColor | 工作日日“班”字顏色 |
pointSize | 指示圓點大小 |
pointColor | 指示圓點顏色 |