分享2個類完成的RecyclerView封裝 , 簡潔 通用
阿新 • • 發佈:2018-11-23
個人地址
專案Github 地址
有問題直接留言或 聯絡QQ:1079569023
基本寫法存在問題
- 不管是ListView還是RecyclerView,大多數的基本寫法都是寫介面卡,裡面的重複性程式碼比較多,一堆Adapter,喜歡複製貼上的內容更是混亂,非常容易出錯
- 部分功能程式碼寫在介面卡中,某些功能不能複用,冗餘度過高,免不了會複製貼上
- 如果遇到複雜的列表時候(比如聊天介面),Adapter的內容更是爆炸
- 問題就是複用性偏差,程式碼冗餘度高,可讀性不好,容易出錯.
解決的問題
- 主要解決複用性問題,程式碼簡潔,基礎流程固定,不會出錯
- 這是一個元件思維,給我一個數據源,我來管理UI的展示和部分業務操作(類似常用的組合View或自定義View)。
- 通用性的封裝,讓全域性使用統一的一個介面卡,免除重複性程式碼;
- RecyclerView的展示一項對應一個ViewHolder,任意組合,無需設定ViewType即可完成複雜頁面的拼接(比如聊天介面)
專案介紹
主要是對程式碼呼叫流程和固定程式碼的封裝,
庫的核心只有2個類
- RecyclerAdapter:通用的一個介面卡
- RecyclerDataHolder:通用的資料包裝類
- 還有幾個很常用的通用功能類,可以忽略
使用簡介
第一步:只有一個RecyclerAdapter介面卡設定給RecyclerView (程式碼固定)
第二步:建立ReyclerView展示的一項
xxxItemDataHolder類繼承RecyclerDataHolder的實現方法即可 (寫法固定)
xxxItemDataHolder 實現方法三個方法
getItemViewLayoutId: 展示的佈局id (寫法固定)
onCreateViewHolder: 設定ViewHolder,可自定義或直接new RecyclerViewHolder(寫法固定)
onBindViewHolder: 給ViewHolder設定資料 (變化的UI展示和業務)
第三步:建立資料來源 List<xxxItemDataHolder> 並設定給RecyclerAdapter即可(寫法固定)
複製程式碼
庫中的其他幾個功能類
- RecyclerCallBack 常用事件回撥介面
- RecyclerViewHolder 添加了幾個常用方法
- ItemSpaceDecoration 用來設定RecyclerView的行間距
- StickRecyclerAdapter 浮動標題設定
- OnPageScrollBottomListener 滾動到底部監聽
程式碼已在多個專案中使用,已改版多次,目前功能穩定,抽出來遠端庫,方便複用。具體使用,可以下載程式碼,執行裡面的Demo即可。
程式碼是自己的分享,僅供學習參考交流,有問題可直接留言或 聯絡QQ:1079569023