# 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
#### 效果演示

#### 安装教程
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;