Android CalendarView 的 Material Design 向后移植。我们的目标是拥有 Material 外观和感觉,而不是与平台实现 100% 相同。
步骤 1. 将 JitPack 存储库添加到您的构建文件中
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
}
步骤2.添加依赖
dependencies {
implementation ' com.github.prolificinteractive:material-calendarview:${version} '
}
MaterialCalendarView
添加到您的布局或视图层次结构中。OnDateSelectedListener
或在需要时调用MaterialCalendarView.getSelectedDates()
。Javadoc 可在此处获取
例子:
< com .prolificinteractive.materialcalendarview.MaterialCalendarView
xmlns : app = " http://schemas.android.com/apk/res-auto "
android : id = " @+id/calendarView "
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
app : mcv_showOtherDates = " all "
app : mcv_selectionColor = " #00F "
/>
请务必检查此处提供的所有文档。
该库的目标之一是可定制。许多选项包括:
所有这些以及更多内容都可以通过装饰器 API 来完成。请查看装饰器文档。
Material CalendarView 2.0 对其 API 核心进行了重大更改,我们从使用java.util.Calendar
过渡到java.time.LocalDate
。另外,这不应该影响公共 api(我们仍在使用CalendarDay
), Calendar
和LocalDate
功能略有不同。举一个例子:月份现在索引为从 1(一月)到 12(十二月)。您可以使用getDate()
从CalendarDay
访问LocalDate
。
此外,此版本没有任何重大更改,它对小部件进行了重大改进。为用户添加了更多自定义功能(自定义字体、长按监听器、显示/隐藏工作日)以及各种修复、示例应用程序的改进和常规清理。请务必检查变更日志和发布部分以获取更多详细信息。
我们最近更新到了最新的 gradle,并决定将我们的库移至托管服务 Jitpack。请参阅安装部分了解更多详细信息。
重大更改: setFirstDayOfWeek
、 setMin/MaxDate
和setCalendarDisplayMode
已移至State
对象。这是必要的,因为尚不清楚这些不是简单的设置器 - 单独而言,它们会产生副作用并触发完整的适配器/日期范围重新计算。视图的典型用法涉及在onCreate
期间预先设置所有这些不变量,并且用户不知道设置所有 4 个变量会造成大量浪费。更不用说某些事情会产生副作用——有些事情会重置当前日期或选定的日期。因此,以不同的顺序调用相同的 4 个方法可能会导致不同的状态,这是很糟糕的。
对于大多数情况,您只需将这些不变量的设置替换为:
mcv . state (). edit ()
. setFirstDayOfWeek ( Calendar . WEDNESDAY )
. setMinimumDate ( CalendarDay . from ( 2016 , 4 , 3 ))
. setMaximumDate ( CalendarDay . from ( 2016 , 5 , 12 ))
. setCalendarDisplayMode ( CalendarMode . WEEKS )
. commit ();
mcv.state().edit()
将保留之前设置的值; mcv.newState()
将使用默认值创建一个新状态。调用commit
将触发适配器和日期范围的重建。建议将这些状态更改作为对 MCV 的第一次修改进行(在配置当前日期或选定日期等其他任何内容之前);我们不保证在状态修改时这些修改会被保留。
有关使用详细信息,请参阅 CUSTOMIZATION_BUILDER。
新增内容:添加了setSelectionMode(SELECTION_MODE_RANGE)
以允许选择 2 个日期并选择整个日期范围。非常感谢 papageorgiouk 在此功能方面所做的工作。
请参阅变更日志中的其他更改。
您愿意贡献吗?分叉我们并发送拉取请求!请务必先检查我们的问题。
材料日历视图版权所有 (c) 2018 Prolific Interactive。它可以根据许可证文件中指定的条款重新分发。
Material Calendar View 由 Prolific Interactive 维护和资助。名称和徽标是 Prolific Interactive 的商标。