一、简介
这几天有一个界面需要选择时间的界面,以前都是用Android 自带日期选择器(DatePicker和DatePickerDialog),显示效果是滚动式,和正在做的APP风格不搭,主要想实现日历风格时间选择器,于是选择了 MaterialCalendarView。
MaterialCalendarView将Android CalendarView 的Material Design风格向后移植。其目标是拥有Material的视觉和使用效果,而不是完全依赖于平台的实现.
Github:https://github.com/prolificinteractive/material-calendarview
CalendarView的特性
基于Canvas绘制,极速性能
热插拔思想,任意定制周视图、月视图,即插即用
支持单选、多选、范围选择、国内手机日历默认自动选择等选择模式
支持静态、动态设置周起始,一行代码搞定
支持静态、动态设置日历项高度、日历填充模式
支持设置任意日期范围、任意拦截日期
支持多点触控、手指平滑切换过渡,拒绝界面抖动
类NestedScrolling特性,嵌套滚动
-
既然这么多支持,那一定支持英语、繁体、简体,任意定制实现
效果图如下:
二、使用
Step 1. Add the JitPack repository to your build fileallprojects { repositories { ... maven { url 'https://jitpack.io' } } }
Step 2. Add the dependency
implementation 'com.github.prolificinteractive:material-calendarview:1.6.0'
2、布局
<com.prolificinteractive.materialcalendarview.
MaterialCalendarView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/materialCalendarView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/CustomTextAppearance"
app:mcv_showOtherDates="all"
app:mcv_selectionColor="#0080FF"
app:mcv_arrowColor="@color/white"
app:mcv_dateTextAppearance="@dimen/text_size"
app:mcv_weekDayTextAppearance="@dimen/text_size"
app:mcv_headerTextAppearance="@dimen/text_size"
/>
mcv_dateTextAppearance、mcv_weekDayTextAppearance、mcv_headerTextAppearance
以上这三个属性调节不同区域字体大小貌似无效,具体字体大小在自定义样式中设置即可,但是不能去掉这三个属性否则有可能导致设置字体大小无效