RecyclerView庫中的遺珠

2021-08-29 18:13:27 字數 1102 閱讀 5428

原來文章寫得很不錯,收藏了,感謝原作者的創作。

recyclerview的強大無人不知,它封裝了viewholder,便於我們**復用;配合layoutmanager、itemdecoration、itemanimator 便於你制定各種列表效果。當然可能還有一些「遺珠」你不太了解,今天就說說它們。

sortedlist

顧名思義就是排序列表,它適用於列表有序且不重複的場景。並且sortedlist會幫助你比較資料的差異,定向重新整理資料。而不是簡單粗暴的notifydatasetchanged()。

asynclistutil

asynclistutil 在 support-v7:23就存在了。它是非同步載入資料的工具,它一般用於載入資料庫資料,我們無需在ui執行緒上查詢游標,同時它可以保持ui和快取同步,並且始終只在記憶體中保留有限數量的資料。使用它可以獲得更好的使用者體驗。

注意,這個類使用單個執行緒來載入資料,因此它適合從磁碟、資料庫載入資料,不適用於從網路載入資料。

asynclistdiffer

雖然sortedlist、asynclistutil很方便了,但是大多數的列表都無需我們排序和載入本地資料,大多是獲取網路資料展示。這個時候就可以使用diffutil了。diffutil是support-v7:24.2.0中的新工具類,它用來比較新舊兩個資料集,尋找最小變化量,定向重新整理列表。關於diffutil的介紹很早之前在張旭童的【android】recyclerview的好伴侶:詳解diffutil 部落格中就有詳細介紹,我這裡就不贅述了。

不過diffutil的問題在於計算資料差異diffutil.calculatediff(mdiffcallback)時是乙個耗時操作,需要我們放到子執行緒去處理,最後在主線程重新整理。為了方便這一操作,在support-v7:27.1.0又新增了乙個diffutil的封裝類,那就是asynclistdiffer。

snaphelper

snaphelper是support-v7:24.2.0新增的,用於控制recyclerview滑動停止後item的對齊方式。預設提供了兩種對齊方式pagersnaphelper 與 linearsnaphelper。pagersnaphelper 和viewpage效果一樣,一次滑動一頁。linearsnaphelper這是item居中對齊。

複雜recyclerView封裝庫

如果覺得好,可以star一下,謝謝!當然也歡迎提出建議,萬事起於忽微,量變引起質變!2.1 先來看看布局,實際上只是在recyclerview基礎上做了大量拓展 0 else else override public void onmoreclick 設定沒有資料 adapter.setnomore...

複雜recyclerView封裝庫

2.1 先來看看布局,實際上只是在recyclerview基礎上做了大量拓展 0 else else override public void onmoreclick 設定沒有資料 adapter.setnomore r.layout.view recycle no more,new recycle...

ADT中配置使用RecyclerView

1 專案中使用的是recyclerview 21.0.0版本 2 recyclerview使用的時候需要使用相對應版本的support v4 21.0.0.jar包 jar包如下 recyclerview.jar android support v4.jar internal impl 21.0.0...