前言
還是那句話,RecyclerView的viewType增多,邏輯變複雜,幾個月後,你確定還能理清思路嗎?假設我們服務端是多個介面返回資料,你確定能正確重新整理相應type嗎?想一個RecyclerView高效快捷管理整個介面嗎?你還在使用notifyDataSetChanged無腦重新整理嗎?你想單個viewType在loadingView,dataView,errorView自如切換嗎?如果你遲疑了,那你不妨試試本庫。
特點
- 與Adapter為組合關係,可配合大多數Adapter
- 一行程式碼重新整理相應viewType
- 支援facebook的shimmer載入效果
- 支援粘性頭
- 支援非同步重新整理,可擴充套件(如配合RxAndroid)
- 支援載入相應type錯誤頁面
- 支援高頻率重新整理(流暢,非同步執行)
效果
線性排布
方格排布
關鍵字高亮
重新整理錯誤頁面
高頻率重新整理
更新內容
- 支援重新整理type錯誤頁面(可自定義)
- 支援同時重新整理多個type(非同步,高頻率)
- 鏈式註冊資源
- 支援重新整理單個資料
- 提供helper的清除單個type,清除整個介面api
- 提供getHeaderId的預設實現抽象類
支援重新整理type錯誤頁面(可自定義)
一行程式碼搞定,前者提供實體類是考慮有些使用者需要根據實體資料屬性去更新,因此錯誤頁面的layoutId是使用者提供的。
支援同時重新整理多個type(非同步,高頻率)
這裡採用的是佇列的形式管理重新整理,提供清空佇列的Api。
鏈式註冊資源
由於引數越來越多,這裡採用了較為流行的鏈式註冊,內部通過ResourcesManager管理所有資源。
**注:**原來的註冊方式已設定為過時,請及時更新,不出2個版本將移除。
支援重新整理單個資料
可能某個type只有一個實體資料管理著整個type
可傳T的子類集合
提供helper的清除單個type,清除整個介面api
提供getHeaderId的預設實現抽象類
假設你不實現粘性頭而強制要寫getHeaderId確實挺討厭的,由於現在android還不是很好地相容java8,因此暫時提供DefaultMultiHeaderEntity。
使用注意點
type 取值範圍
- level [0,+∞)
- 資料型別 [0,1000)
- 頭型別 [-1000,0)
- shimmer資料型別 [-2000,-1000)
- shimmer頭型別 [-3000,-2000)
- error型別 [-4000,-3000)
常量差值
結束
庫多多少少也更新幾個版本了,你的意見,你的建議,你的star,你的分享,一直是我前進的動力。還有一點要說的就是現在關於LayoutManager,RecyclerView,Adapter的流派很多,我們更關注於資料的優雅重新整理。
gradle依賴
PS :有興趣的加入Android工程師交流QQ群:752016839 主要針對Android開發人員提升自己,突破瓶頸,相信你來學習,會有提升和收穫。