1誓焦、ViewHolder模式何址,而且ViewHolder作為內(nèi)部類使用時聲明為static的
2寓盗、異步加載:耗時的操作放在異步線程中
如果在adapter中的某些操作需要耗費(fèi)大量的時間儒陨,這個時候就要用到異步線程來進(jìn)行異步就在數(shù)據(jù)衷掷。比如:現(xiàn)在要加載圖片蜜猾,此時我們需要根據(jù)url訪問網(wǎng)絡(luò)得到數(shù)據(jù)秀菱,然后將數(shù)據(jù)解析為Bitmap設(shè)置給View
3振诬、listView錯位加載問題:判斷url是否一致解決
4、為圖片設(shè)置緩存
5衍菱、ListView的滑動時停止加載和分頁加載
6赶么、硬件加速,硬件加速只需要設(shè)置--android:hardwareAccelerate="true"即可
7梦碗、自定義view降低層級
8禽绪、對于一些并非需要刷新整個ui的操作,盡可能做到單個ui刷新洪规,不要讓整個可見視圖整體做視圖渲染
9印屁、listview在拖動的時候背景圖片消失變成黑色背景,等到拖動完畢我們自己的背景圖片才顯示出來斩例;所以需要將android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″
10雄人、animateCache: ListView默認(rèn)開啟了animateCache,這會消耗大量的內(nèi)存念赶,因此會頻繁調(diào)用GC础钠,我們可以手動將它關(guān)閉掉
11、使用 RecycleView 代替叉谜。
ListView 每次更新數(shù)據(jù)都要 notifyDataSetChanged()旗吁,有些太暴力了。RecycleView 在性能和可定制性上都有很大的改善停局,推薦使用
12很钓、處理空ListView
ListView用于展示列表數(shù)據(jù),但當(dāng)列表中無數(shù)據(jù)時董栽,ListView不會顯示任何數(shù)據(jù)或提示码倦,按照完善用戶體驗(yàn)的需求,這里應(yīng)該給以無數(shù)據(jù)的提示锭碳。幸好袁稽,ListView提供了一個方法——setEmptyView(),通過這個方法擒抛,我們可以給ListView設(shè)置一個在空數(shù)據(jù)下顯示的默認(rèn)提示推汽。