# CommentView
**Repository Path**: jidcoo/CommentView
## Basic Information
- **Project Name**: CommentView
- **Description**: 简洁、高效、可自定义的开源的Android评论控件---CommentView
- **Primary Language**: Android
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 38
- **Forks**: 15
- **Created**: 2020-07-11
- **Last Updated**: 2025-03-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CommentView
简洁、高效、可自定义的开源的Android评论控件---CommentView
## 控件的使用
### 1、控件方法介绍
> **以下是控件对外公布的所有业务方法。**
| 方法 | 参数 | 说明 |
|--|--|--|
| .callbackBuilder()| \ |获取CallbackBuilder实例设置需要的回调, **无论是否设置回调,都必须调用.callbackBuilder().buildCallback()方法完成初始化。并且初始化必须在loadComplete()调用之前完成。**| |
| .loadComplete()|AbstractCommentModel |**首次加载数据**时调用此方法, **注意:设置回调,设置空数据视图、设置错误视图、设置自定义样式配置器,设置头布局,这5个方法都必须要在loadComplete()这个方法调用之前调用,否则这5个方法失效。**| |
| .loadFailed()|boolean isShowErrorView |首次加载数据失败时调用,boolean参数表示是否显示错误视图。| |
| .refreshComplete()|AbstractCommentModel |刷新数据完成后调用,传入刷新后的数据实体类。该方法调用后OnPullRefreshCallback的complete()方法会被调用。| |
| .refreshFailed()|String msg,boolean isShowErrorView |数据刷新失败时调用,msg表示错误信息,boolean参数表示是否显示错误视图。该方法调用后OnPullRefreshCallback的failure(String msg)方法会被调用。| |
| .loadMoreComplete()|AbstractCommentModel |加载更多评论数据完成后调用,传入一个数据实体类。该方法调用后OnCommentLoadMoreCallback的complete()方法会被调用。| |
| .loadMoreFailed()|String msg,boolean isShowErrorView |加载更多评论数据失败时调用,msg表示错误信息,boolean参数表示是否显示错误视图。该方法调用后OnCommentLoadMoreCallback的failure(String msg)方法会被调用。| |
| .loadMoreReplyComplete()|AbstractCommentModel |加载更多回复数据完成后调用,传入一个数据实体类。该方法调用后OnReplyLoadMoreCallback的complete()方法会被调用。| |
| .loadMoreReplyFailed()|String msg,boolean isShowErrorView |加载更多评论数据失败时调用,msg表示错误信息,boolean参数表示是否显示错误视图。该方法调用后OnReplyLoadMoreCallback的failure(String msg)方法会被调用。| |
| .getCommentList()| \ |获取所有评论数据返回List| |
| .getReplyList()| int position |根据position所在的评论获取所在评论的所有回复数据返回List| |
| .addComment()|C<?extend CommentEnable> comment|添加一条评论数据到当前的评论数据集合中| |
| .addReply()|R<?extend ReplyEnable> comment,int position|添加一条回复数据到position所在的评论的回复数据集合中| |
| .setEmptyView()| View view |为控件设置空数据视图,**注意:此方法必须在loadComplete()方法调用前调用,也就是说要在首次加载数据前调用,否则此方法无效。**| |
| .setErrorView()| View view |为控件设置错误视图,**注意:此方法必须在loadComplete()方法调用前调用,也就是说要在首次加载数据前调用,否则此方法无效。**| |
| .addHeaderView()| View view,boolean canClickable |为控件添加头视图,并且设置该视图是否响应点击事件。**注意:此方法建议在loadComplete()方法调用前调用。**| |
| .removeHeaderView()| View view |移除当前控件的对应的头视图| |
| .setViewStyleConfigurator()| ViewStyleConfigurator |设置自定义的样式配置器,**注意:此方法必须在loadComplete()方法调用前调用,也就是说要在首次加载数据前调用,否则此方法无效。**| |
|--|--|--|
### 2、基本使用
**第一步:引入控件库:**
有两种方法:
**1、远程仓库**
在module的build.gradle中添加jcenter仓库:
```java
buildscript {
repositories {
jcenter()
}
}
```
然后在dependencies模块中添加依赖即可:
```java
implementation 'com.jidcoo.android.widget.commentview:CommentView:1.0.0'
```
**2、本地仓库**
把源码包下载下来,把commentview库放在与当前module的同级。
然后在dependencies模块中添加本地依赖即可:
```java
implementation project(path: ':commentview')
```
**第二步:引入控件:**
控件的引入方法有两种:
1、XML布局文件中引入
```java
1、CustomCommentItemCallback:自定义评论布局回调
2、CustomReplyItemCallback:自定义回复布局回调
3、OnPullRefreshCallback:上拉刷新回调
4、OnCommentLoadMoreCallback:下拉加载更多评论回调
5、OnReplyLoadMoreCallback:加载更多回复回调
6、OnItemClickCallback:Item的点击事件回调
7、OnScrollCallback:控件滚动事件回调
当需要设置回调时: **设置完回调后必须调用.buildCallback()方法,否则回调不会生效,控件也无法正常使用。** ```java commentView.callbackBuilder() .setOnPullRefreshCallback(你的回调实例) .onItemClickCallback(你的回调实例) ......设置更多回调 ......设置更多回调 //设置完成后必须调用CallbackBuilder的buildCallback()方法,否则设置的回调无效,控件也无法正常显示。 //无论是否设置回调,buildCallback()方法都必须调用。 .buildCallback(); ``` 当不需要设置回调时: **必须调用.buildCallback()方法,否则控件也无法正常使用。** ```java commentView.callbackBuilder().buildCallback(); ``` **第五步:设置数据:** 当所有的初始化工作都完成后,就可以请求后台返回评论数据或加载本地数据为控件设置数据了。完成设置数据后,控件就能正确显示评论数据了。 ```java commentView.loadComplete(你的数据模型实体类); ```