Android修行筆記(五):ListView 良好編程指南

 

構成Android應用的一個重要的UI構件就要算ListView了,咱們項目中用得不少,因此總結了如下的經驗進行分享探討
 
一、重用Adapter getView函數中的ConvertView
列表的每一行Item一般都是可複用的,重用能夠避免屢次建立,讓滾動 更加順滑。
(注意:2.3系統在複用View的時候有些狀態會被保留,好比GONE的狀態,因此在getView中重用convertView 要對Visibility屬性從新進行設置)
 
二、使用ViewHolder來保存經過findViewById進行查找的元素
一般咱們會使用findViewById來查找某個佈局裏邊的TextView或者Button,進行相應的賦值或者操做。
在ListView中,因爲大量的View都是可重用的,因此咱們能夠建立一個ViewHolder類來把這些查找到的元素保存起來,而後使用setTag
設置到convertView中。重用時候只是要使用getTag獲取便可。 這樣避免了屢次查找浪費運算資源
 
三、使用RelativeLayout替代掉Item中的層次過多的LinearLayout
日常狀況下,LinearLayout佈局會方便甚至快過RelativeLayout,但隨着層次的加深前者速度會愈來愈慢。這樣在存在多個Item的列表中就會
更加明顯,咱們可使用一層的RelativeLayout來替換掉佈局中有好幾個層次的LinearLayout來加快計算速度
 
四、在快速滾動的時候對於一些比較消耗系統資源的動做不進行執行
好比手機QQ在對聯繫人列表進行快速滑動時依然能夠保持快速滑動,這對於要加載不少圖像的App是很難實現的,咱們項目也遇過相似的卡頓
問題。結果採用了跟手機QQ同樣的小策略簡單的解決了這個問題,關鍵就是頭像 在滾動中止的時候才進行加載
相關文章
相關標籤/搜索