[發明專利]一種優化RecyclerView控件使用性能的方法在審
| 申請號: | 202011272744.0 | 申請日: | 2020-11-13 |
| 公開(公告)號: | CN112364276A | 公開(公告)日: | 2021-02-12 |
| 發明(設計)人: | 雷媛媛;李金國 | 申請(專利權)人: | 四川長虹電器股份有限公司 |
| 主分類號: | G06F16/957 | 分類號: | G06F16/957 |
| 代理公司: | 四川省成都市天策商標專利事務所 51213 | 代理人: | 趙以鵬 |
| 地址: | 621000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 優化 recyclerview 控件 使用 性能 方法 | ||
本發明公開了一種優化RecyclerView控件使用性能的方法,屬于軟件技術領域。該檢測方法,包括以下步驟:S1:在啟動界面前,創建子線程,在子線程中異步初始化子View布局并生成ViewHolder;S2:將ViewHolder存入緩存池待RecyclerView使用。本發明的優化RecyclerView控件使用性能則是增加緩存池容納數量,通過在子線程預先創建大量ViewHolder存儲在緩存池中,利用反射機制修改ViewHolder的itemViewType的值為目標ViewHolder的type值,保持存入和查找的itemViewType保持一致,達到復用的效果。在子線程創建足夠的ViewHolder,不占用主線程執行任務,從而提升頁面初始化速度。
技術領域
本發明涉及Android系統分區和數據安全技術領域,更具體的說是涉及一種優化RecyclerView控件使用性能的方法。
背景技術
RecyclerView有四級緩存機制,緩存ViewHolder。ViewHolder封裝了View視圖,切換視圖時,對ViewHolder進行回收再利用,通過維護少量的View來顯示大量的數據。RecyclerView緩存過程是:在滑動過程中,回收的View視圖會先緩存在CacheView中,CacheView默認大小是2,若超過最大容量,則保存至RecycledViewPool中,緩存池是按照ItemView的viewType類型進行保存,每種itemViewType默認緩存個數是5,超過則由GC回收。
目前,RecyclerView復用的ViewHolder主要存在緩存池中。不通過適配器創建的ViewHolder itemViewType默認為-1,,而通過適配器創建的ViewHolder和從緩存池查找可復用的ViewHolder的itemViewType默認為0。為此,若不通過適配器創建ViewHolder,會導致刷新視圖在緩存池中查找可復用的ViewHolder時,由于存儲和查找所用的itemViewType不一致,無法找到可復用的ViewHolder,從而需要重新創建新的ViewHolder。加載子View布局并創建新的ViewHolder是一項耗時的操作,會降低視圖刷新速度,影響用戶體驗,且復用機制無法達到效果。緩存池一種itemViewType默認緩存個數為5,若一次視圖刷新回收的ViewHolder過多,超出容納范圍,會造成頻繁GC。
發明內容
本發明的目的在于提供一種優化RecyclerView控件使用性能的方法,以期解決初始化RecyclerView列表頁面的時候,主線程加載子View布局創建ViewHolder耗時,造成頁面初始化速度慢的問題;不通過適配器創建的ViewHolder回收入緩存池后,RecyclerView無法查找到可復用的ViewHolder,需要創建ViewHolder,造成復用機制未達到效果的問題;在快速滑動列表過程中,由于緩存池每個itemViewType默認緩存個數較小,導致RecyclerView頻繁創建ViewHolder,造成UI界面卡頓、不流暢的問題。
為了實現上述目的,本發明采用以下技術方案:
一種優化RecyclerView控件使用性能的方法,包括以下步驟:
S1:在啟動界面前,創建子線程,在子線程中異步初始化子View布局并生成ViewHolder;
S2:將ViewHolder存入緩存池待RecyclerView使用。
所述S1中,所述在啟動界面前,創建子線程,在子線程中異步初始化子View布局并生成ViewHolder,包括:調用RecycledViewPool的setMaxRecycledViews方法設置指定itemViewType最大默認緩存個數,以保存足夠數量的ViewHolder,然后獲取ViewHolder的ViewGroup,通過線程池管理子線程,加載子View的布局,創建ViewHolder。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川長虹電器股份有限公司,未經四川長虹電器股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011272744.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種木材熱處理后快速回潮的方法
- 下一篇:一種LED燈自動制造設備





