天天看點

android 評論回複控件,CommentView:

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 comment

添加一條評論資料到目前的評論資料集合中

.addReply()

R 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布局檔案中引入

android:orientation="vertical" android:layout_width="match_parent"

android:id="@+id/container"

android:layout_height="match_parent">

android:id="@+id/commentView"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

然後在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(你的資料模型實體類);