# CalendarView **Repository Path**: chinasoft-ohos-admin/CalendarView ## Basic Information - **Project Name**: CalendarView - **Description**: 自定义日历控件 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-04-14 - **Last Updated**: 2025-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CalendarView **本项目基于开源项目 `CalendarView` 进行ohos的移植和开发,可以通过项目标签以及github地址( https://github.com/kizitonwose/CalendarView )追踪到原安卓项目版本** #### 项目介绍 - 项目名称:CalendarView - 所属系列:ohos第三方组件适配移植 - 功能:自定义各种风格日历 - 基线版本:CalendarView release v1.0.3 - 项目移植状态:主功能完成 - 调用差异:无 - 开发版本:sdk5,DevEco Studio2.1 beta3 - 项目作者和维护人:代晃 刘清华 - 联系方式:daihuang073@chinasoftinc.com #### 效果演示 ![art1](images/image-all.png) #### 安装教程 1.下载library的har包library.har(位于:)。 2.启动 DevEco Studio,将下载的har包,导入工程目录“demo->libs”下。 3.在moudle级别下的build.gradle文件中添加依赖,在dependencies标签中增加对libs目录下jar包的引用。 ``` dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) ...... } ``` 在sdk5,DevEco Studio2.1 beta3下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 #### 使用说明 #### 步骤1: 添加CalendarView到你的xml布局文件 ```xml ``` 创建 日 的xml布局在 `res/layout/calendar_day_layout.xml`; ```xml ``` 创建视图容器,作为每个日期单元格的视图容器; ```java class DayViewContainer(view: View) : ViewContainer(view) { Text text = (Text) component.findComponentById(ResourceTable.Id_calendarDayText); } ``` 为CalendarView提供"DayViewContainer"类型的"DayBinder"; ````java calendarView.setDayBinder(new DayBinder() { @Override public DayViewContainer create(Component component) { return new DayViewContainer(component); } @Override public void bind(DayViewContainer container, CalendarDay day) { container.bind(day); } }); ```` #### 步骤 2: ````java YearMonth currentMonth = YearMonth.now(); calendarView.setup(currentMonth, currentMonth.plusMonths(3), LocalDate.now().getDayOfWeek()); calendarView.scrollToDate(LocalDate.now()); ```` ####相关属性 - **cv_dayViewResource**: 用作日单元格视图,必须提供; - **cv_monthHeaderResource**: 用作每个月的标题; - **cv_monthFooterResource**: 用作每个月的页脚; - **cv_orientation**: CalendarView布局的方向,可以选择 cv_orientation_horizontal 和 cv_orientation_vertical;