Adapter是ListView界面與數(shù)據(jù)之間的橋梁,當(dāng)列表里的每一項(xiàng)顯示到頁面時(shí),都會(huì)調(diào)用Adapter的getView方法返回一個(gè)View。如果列表中有很多的項(xiàng)時(shí)會(huì)占用極大的系統(tǒng)資源,所以我們需要優(yōu)化Adapter
1、convertView的使用
上面這種方式對(duì)于每個(gè)View使用了一個(gè)ViewHolder來控制其內(nèi)部的子item還使用了setTag和getTag的方法 將holder綁定到了view上而不是直接的新建View 是對(duì)Adapter的優(yōu)化。 2、測(cè)試getView被調(diào)用的次數(shù) 假設(shè)做一個(gè)動(dòng)態(tài)刷新的ListView,發(fā)現(xiàn)顯示的adapter.notifyDataSetChanged()的速度有點(diǎn)慢 那么可以測(cè)試下getView調(diào)用的次數(shù) 是不是太多。調(diào)用的次數(shù)多的讓你覺著莫名其妙 那么說明 肯定是有問題的 一定會(huì)影響性能的。 更改方法: Xml代碼
將android:layout_height="wrap_content"修改成:android:layout_height="fill_parent"就可以了。 如果更改以后沒用,ListView周圍的控件也是"wrap_content"那么也需要修改。 3、關(guān)于ListView 對(duì)于純色的item背景 其實(shí)可以直接設(shè)置BackgroundColor 而不要使用圖片 這一部分其實(shí)可以有不小的提升 同樣的 對(duì)于任何純色的背景 應(yīng)該盡量去設(shè)置RGB顏色 而不是全用一張圖片做背景。 |
|