Android ListView優化思路12則

CatRQD 7年前發布 | 13K 次閱讀 ListView Android開發 移動開發

超藍.jpg

1、ViewHolder模式,而且ViewHolder作為內部類使用時聲明為static的

2、異步加載:耗時的操作放在異步線程中

如果在adapter中的某些操作需要耗費大量的時間,這個時候就要用到異步線程來進行異步就在數據。比如:現在要加載圖片,此時我們需要根據url訪問網絡得到數據,然后將數據解析為Bitmap設置給View

3、listView錯位加載問題:判斷url是否一致解決

4、為圖片設置緩存

5、ListView的滑動時停止加載和分頁加載

6、硬件加速,硬件加速只需要設置--android:hardwareAccelerate="true"即可

7、自定義view降低層級

8、對于一些并非需要刷新整個ui的操作,盡可能做到單個ui刷新,不要讓整個可見視圖整體做視圖渲染

9、listview在拖動的時候背景圖片消失變成黑色背景,等到拖動完畢我們自己的背景圖片才顯示出來;所以需要將android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″

10、animateCache: ListView默認開啟了animateCache,這會消耗大量的內存,因此會頻繁調用GC,我們可以手動將它關閉掉

11、使用 RecycleView 代替。

ListView 每次更新數據都要 notifyDataSetChanged(),有些太暴力了。RecycleView 在性能和可定制性上都有很大的改善,推薦使用

12、處理空ListView

ListView用于展示列表數據,但當列表中無數據時,ListView不會顯示任何數據或提示,按照完善用戶體驗的需求,這里應該給以無數據的提示。幸好,ListView提供了一個方法——setEmptyView(),通過這個方法,我們可以給ListView設置一個在空數據下顯示的默認提示。

 

來自:http://www.jianshu.com/p/539218c871cf

 

 本文由用戶 CatRQD 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!