效果视频:

教程:

1.Xamarin项目Android端安装安卓nuget包

  •  
Install-Package XamarinLibrary.Xamarin.Android.Haibin.CalendarView -Version 3.7.1

 

2.参考原作者Android原生源码用法对照调用C#相应函数;

 

3.在Xamarin方面将CalendarView相关控件使用Renderer方案在Xamarin.Forms显示;

 

4.涉及Xamarin.Forms、Xamarin.Android的Renderer的使用时,可以参考源码示例的代码进行相应处理。

 

其他资料:

 

Xamarin.Forms 演示CalendarView的Sample的源码:

https://github.com/jingliancui/XamarinFormsCalendarViewSample

 

原生Android的CalendarView源码:

https://github.com/huanghaibin-dev/CalendarView

 

原生Android的CalendarView的使用方法:

https://github.com/huanghaibin-dev/CalendarView/blob/master/QUESTION_ZH.md

 

 

微软官方Renderer教程示例:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/video-player/

 

CalendarView 的特性:

基于Canvas绘制,极速性能

热插拔思想,任意定制周视图、月视图,即插即用!

支持单选、多选、范围选择、国内手机日历默认自动选择等选择模式

支持静态、动态设置周起始,一行代码搞定

支持静态、动态设置日历项高度、日历填充模式

支持设置任意日期范围、任意拦截日期

支持多点触控、手指平滑切换过渡,拒绝界面抖动

类NestedScrolling特性,嵌套滚动

既然这么多支持,那一定支持英语、繁体、简体,任意定制实现

 

后话:

本次为Xamarin.Android带来Android的日历控件huanghaibin-dev/CalendarView,由于之前遇到的业务功能的实现需要使用到日历进行定制化开发,而该控件提供的能力也比较多及比较灵活,所以也分享给有需要的开发者。

如果对本示例使用的nuget包有疑问,可以在公众号留言或者Github发起相关issue与我进行相关技术交流。