一挖诸、什么是ListView
Listview是一個(gè)能將數(shù)據(jù)集合以動(dòng)態(tài)滾動(dòng)的方式展示到用戶(hù)界面上的View仰剿。
二日川、ListView適配器模式
Adapter是數(shù)據(jù)源和ListView的橋梁寓盗,Adapter負(fù)責(zé)為每個(gè)數(shù)據(jù)制作View,交給ListView來(lái)顯示望侈。ListView中的每個(gè)項(xiàng)的顯示都會(huì)調(diào)用getView()方法印蔬。
三、ListView的RecycleBin機(jī)制
元素6滑入界面時(shí)甜无,會(huì)復(fù)用元素0的Item扛点。
四哥遮、ListView的優(yōu)化
使用converView復(fù)用和ViewHolder:當(dāng)有view移除界面的時(shí)候岂丘,其會(huì)變成convertView,因此眠饮,在調(diào)用getView()方法的時(shí)候奥帘,先判斷convertView是否為空,為空的話(huà)使用加載新布局和ViewHolder仪召,并用ViewHolder綁定布局中的控件寨蹋,然后在convertView中保存ViewHolder;若convertView不為空扔茅,直接從convertView中取出已保存的ViewHolder已旧,再進(jìn)行其他的操作。ViewHolder是一個(gè)內(nèi)部類(lèi)召娜,用來(lái)保存控件信息运褪,以減少findViewById()的次數(shù)。
使用三級(jí)緩存/設(shè)置滑動(dòng)監(jiān)聽(tīng)事件 :可以使用三級(jí)緩存加載圖片玖瘸;在getView()方法中做耗時(shí)操作會(huì)使ListView卡頓秸讹,非要做耗時(shí)操作可以給ListView設(shè)置監(jiān)聽(tīng)事件,當(dāng)ListView停止滑動(dòng)時(shí)雅倒,再加載圖片之類(lèi)的璃诀。
避免半透明元素/設(shè)置硬件加速 :在getView()中使用非透明元素的效率比透明元素要高;設(shè)置硬件加速可以提高圖片的加載效率蔑匣。