1. 程式人生 > >分享2個類完成的RecyclerView封裝 , 簡潔 通用

分享2個類完成的RecyclerView封裝 , 簡潔 通用

個人地址

專案Github 地址

有問題直接留言或 聯絡QQ:1079569023


基本寫法存在問題

  1. 不管是ListView還是RecyclerView,大多數的基本寫法都是寫介面卡,裡面的重複性程式碼比較多,一堆Adapter,喜歡複製貼上的內容更是混亂,非常容易出錯
  2. 部分功能程式碼寫在介面卡中,某些功能不能複用,冗餘度過高,免不了會複製貼上
  3. 如果遇到複雜的列表時候(比如聊天介面),Adapter的內容更是爆炸
  4. 問題就是複用性偏差,程式碼冗餘度高,可讀性不好,容易出錯.

解決的問題

  1. 主要解決複用性問題,程式碼簡潔,基礎流程固定,不會出錯
  2. 這是一個元件思維,給我一個數據源,我來管理UI的展示和部分業務操作(類似常用的組合View或自定義View)。
  3. 通用性的封裝,讓全域性使用統一的一個介面卡,免除重複性程式碼;
  4. RecyclerView的展示一項對應一個ViewHolder,任意組合,無需設定ViewType即可完成複雜頁面的拼接(比如聊天介面)

專案介紹

主要是對程式碼呼叫流程和固定程式碼的封裝,

庫的核心只有2個類

  1. RecyclerAdapter:通用的一個介面卡
  2. RecyclerDataHolder:通用的資料包裝類
  3. 還有幾個很常用的通用功能類,可以忽略

使用簡介

第一步:只有一個RecyclerAdapter介面卡設定給RecyclerView (程式碼固定)

第二步:建立ReyclerView展示的一項
 xxxItemDataHolder類繼承RecyclerDataHolder的實現方法即可 (寫法固定)
 xxxItemDataHolder 實現方法三個方法 
 
 getItemViewLayoutId: 展示的佈局id (寫法固定)
 onCreateViewHolder: 設定ViewHolder,可自定義或直接new RecyclerViewHolder(寫法固定)
 onBindViewHolder: 給ViewHolder設定資料 (變化的UI展示和業務)

第三步:建立資料來源 List<xxxItemDataHolder> 並設定給RecyclerAdapter即可(寫法固定)
複製程式碼

庫中的其他幾個功能類

  1. RecyclerCallBack 常用事件回撥介面
  2. RecyclerViewHolder 添加了幾個常用方法
  3. ItemSpaceDecoration 用來設定RecyclerView的行間距
  4. StickRecyclerAdapter 浮動標題設定
  5. OnPageScrollBottomListener 滾動到底部監聽

程式碼已在多個專案中使用,已改版多次,目前功能穩定,抽出來遠端庫,方便複用。具體使用,可以下載程式碼,執行裡面的Demo即可。


程式碼是自己的分享,僅供學習參考交流,有問題可直接留言或 聯絡QQ:1079569023