天天看點

RecyclerView更全解析之 - 打造通用的下拉重新整理上拉加載

  

  我們需要思考一個問題上拉重新整理下拉加載風格各式各樣,淘寶和京東的清單重新整理樣式就肯定不一樣,我們怎麼樣做到版本疊代的時候可以快速的更改樣式。有時還需要顯示正在加載資料或者無資料,比如篩選的時候有可能會出現沒有資料的情況會顯示無資料頁面,怎麼快速做到?當然如果你對系統架構比較了解那就非常簡單了,又或者是你對面向對象的六大基本原則比較熟悉也行。

 

RecyclerView更全解析之 - 打造通用的下拉重新整理上拉加載

  我們在寫項目或是搭建架構的時候需要考慮最多的是擴充,而不是先把所有的功能寫在一起或是全部寫好,或者說代碼過度設計本來很簡單的東西你非得跟人解釋這怎麼怎麼的,很忌諱。

  肯定是希望目前寫好的東西,以後如果出現什麼問題或者添加新的功能都不需要去修改我們已經寫好的代碼,而是在原來的基礎上利用面向對象的思想去擴充無論你是繼承也好還是實作也好都行,就不會出現需求改變的時候我們的代碼就改成了别人口中說的改成了……

  本着這個原則我們大緻的思想就是:

先處理下拉重新整理,同時考慮重新整理清單的不同風格樣式,確定這個項目還是下一個項目都能用

再處理上拉加載更多,隻需去繼承寫好的下拉重新整理控件即可

可以适當的增加一些基本功能,如正在加載清單樣式或者說是無頁面資料樣式

封裝通用預設的樣式,封裝好整個項目的通用樣式,如果下次需要修改擴充即可

最後思考一下我們這樣去寫合不合理,給自己的同僚用用自己和他們都做一下測評和修改

  3.1 下拉重新整理

  先處理下拉重新整理,同時考慮重新整理清單的不同風格樣式,確定這個項目還是下一個項目都能用。這裡我們肯定是繼承上一期的可以直接添加頭部和底部的WrapRecyclerView,為了確定實作不同的樣式,需要一個額外的輔助類:

 我們來寫一個預設的下拉重新整理效果測試一下,這個gif錄制軟體的效果不是特别給力

RecyclerView更全解析之 - 打造通用的下拉重新整理上拉加載

3.2 處理上拉加載更多

  再處理上拉加載更多,隻需去繼承寫好的下拉重新整理控件即可。我們的确可以在原來的這個下拉重新整理的控件中去寫,但是有幾個問題都寫到一堆出了問題找誰?别人怎麼看代碼?如果該需求隻要下拉重新整理呢?說好的擴充。是以我們新寫一個控件繼承已經寫好的下拉重新整理控件每個類負責單獨的事情

RecyclerView更全解析之 - 打造通用的下拉重新整理上拉加載

3.3 增加一些基本通用功能

   最後我們在這個基礎在增加一些基本的功能,如正在加載資料的頁面,或者資料是空的頁面,是以決定找一層最合适的方法去改,那就是我們上一期的WrapRecyclerView的基礎上去改,因為那是我們Adapter密切聯系的一層。

到目前應該所有的這些清單重新整理和加載樣式都可以實作,具體的一些要求可以自己修改修改。我這裡就不在把它使用到具體的項目中了,我自己也用到了自己的項目中,之是以之前沒寫這一期的部落格是因為在使用的過程中出現了一些Bug,是以才等到這個時候。

RecyclerView更全解析之 - 打造通用的下拉重新整理上拉加載