/CommentView

简洁、高效、可自定义的开源的Android评论控件---CommentView

Primary LanguageJavaApache License 2.0Apache-2.0

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仓库:

buildscript {
    repositories {
        jcenter()
    }
}

然后在dependencies模块中添加依赖即可:

implementation 'com.jidcoo.android.widget.commentview:CommentView:1.0.0'

2、本地仓库

把源码包下载下来,把commentview库放在与当前module的同级。

然后在dependencies模块中添加本地依赖即可:

implementation project(path: ':commentview')

第二步:引入控件:

控件的引入方法有两种:

1、XML布局文件中引入

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:id="@+id/container"
    android:layout_height="match_parent">


  <com.jidcoo.android.widget.commentview.CommentView
      android:id="@+id/commentView"
      android:layout_width="match_parent"
      android:layout_height="match_parent"/>
</LinearLayout>

然后在Activity中实例化控件。

2、Java代码中动态创建

//控件容器
LinearLayout mContainer;
CommentView commentView=new CommentView(this,mContainer);

CommentView的构造方法: public CommentView(Context context, ViewGroup attachTo)

第一个参数是Activity的上下文。第二个参数是ViewGroup,也就是将控件挂靠在这个指定的布局上。注意:当attachTo参数为空时,需要手动把控件添加到布局中,否则控件将不会显示

第三步:初始化控件:

设置自定义样式配置器

如果使用默认样式的话就不需要调用这个方法,如果使用自定义样式配置器时调用该方法必须在loadComplete()调用前调用,否则该方法无效。

commentView.setViewStyleConfigurator(你的样式配置器);

设置空数据视图: 如果不需要设置空数据视图就不需要调用这个方法,如果需要设置空数据视图时调用该方法必须在loadComplete()调用前调用,否则该方法无效。

commentView.setEmptyView(你的空数据视图);

设置错误视图: 如果不需要设置错误视图就不需要调用这个方法,如果需要设置错误视图时调用该方法必须在loadComplete()调用前调用,否则该方法无效。

commentView.setErrorView(你的错误视图);

添加控件头视图: 如果不需要添加控件头视图就不需要调用这个方法,如果需要添加控件头视图时调用该方法建议在loadComplete()调用前调用。

commentView.addHeaderView(你的错误视图,是否响应点击事件);

第四步:初始化回调(非常重要,必须初始化):

无论是否需要设置回调,都要调用.buildCallback()方法完成初始化。

并且初始化回调的工作必须要在loadComplete()方法调用之前(即首次加载数据之前)完成,否则控件将无法正常使用。

支持的回调:

1、CustomCommentItemCallback:自定义评论布局回调

2、CustomReplyItemCallback:自定义回复布局回调

3、OnPullRefreshCallback:上拉刷新回调

4、OnCommentLoadMoreCallback:下拉加载更多评论回调

5、OnReplyLoadMoreCallback:加载更多回复回调

6、OnItemClickCallback:Item的点击事件回调

7、OnScrollCallback:控件滚动事件回调

当需要设置回调时:

设置完回调后必须调用.buildCallback()方法,否则回调不会生效,控件也无法正常使用。

commentView.callbackBuilder()
           .setOnPullRefreshCallback(你的回调实例)
           .onItemClickCallback(你的回调实例)
           ......设置更多回调
           ......设置更多回调
           //设置完成后必须调用CallbackBuilder的buildCallback()方法,否则设置的回调无效,控件也无法正常显示。
           //无论是否设置回调,buildCallback()方法都必须调用。
           .buildCallback();

当不需要设置回调时:

必须调用.buildCallback()方法,否则控件也无法正常使用。

commentView.callbackBuilder().buildCallback();

第五步:设置数据:

当所有的初始化工作都完成后,就可以请求后台返回评论数据或加载本地数据为控件设置数据了。完成设置数据后,控件就能正确显示评论数据了。

commentView.loadComplete(你的数据模型实体类);