RecyclerView的卡頓分析與解決方案

2021-10-08 10:21:25 字數 806 閱讀 2030

recyclerview是android開發中常見的元件之一,也是官方推薦的listview的替代品。然而在實際使用中我遇到了recyclerview卡頓的問題,在這裡記錄一下。也綜合總結網上其他可能發生卡頓的情況和解決方案。

通過歸類分析,recyclerview出現卡頓的問題可以分為以下兩大類情況:

1.在ui執行緒進行網路任務或者其他耗時操作

2.資料過多或者過大

1的解決方法:

將耗時任務非同步處理,adddata部分放在ui執行緒中。

2資料過多的解決方法:

後端控制:請求介面新增分頁引數以及每頁顯示數量,由後端返回分頁引數和每頁顯示數量。

前端控制:對展示資料進行切分加工,複製並顯示前100條等

壓縮,使用載入框架,格式調整,監聽滑動完畢再進行載入,盡量在setadapter前完成。

其他情況解決思路:

減少層級,自定義重寫recyclerview,減少過渡繪製區域,減少item中布局層級,區域性重新整理(指定具體position),使用快取池recyclerviewpool,確定item高度以減少繪製次數(recyclerview.sethasfixedsize(true);)。

最後要提一點,谷歌官方不推薦巢狀recyclerview。在實際使用中常常見到nestedscrollview巢狀recyclerview的做法,這樣會導致recyclerview 的每條資料都會建立乙個item,資料量大的時候會不斷發生gc,最終影響ui執行緒。

解決webstorm的卡頓問題

webstorm強大的功能就不多做介紹了。但是它的缺點也顯而易見 吃記憶體。電腦配置稍低一點,執行webstorm就特別容易卡頓,特別是專案比較大的時候,那卡頓得不要不要的。在我的筆記本8g記憶體 256ssd的配置下,執行webstorm還是會稍微有點卡。不過可以通過設定 記憶體值大小來解決。具體...

AS記憶體小導致的卡頓怎麼解決

找到修改堆大小的地方提公升系統分配的記憶體 找到androidstudio的安裝目錄 bin studio64.exe.vmoptions這個檔案 我的是64位系統,如果你的是32位的系統應該是studio.exe.vmoptions 把它複製到 本賬戶目錄 androidstudio1.5目錄下 ...

el option 1500 條時的卡頓問題

在做專案時遇到的乙個問題。專案是基於 vue 框架做的。select 的 option 是通過 v for 迴圈出來的,在條數較少時是非常方便的,但問題在於當條數多了之後就會出現卡頓現象。我做的條數有 1600 條 導致有 6 秒左右的延時,查詢了很久之後發現的 bug 源頭。可以把 select ...