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