有個疑問,假設(shè)一個屏幕可顯示8行,若listView的xml配置中:android:layout_height=""設(shè)置成match_parent的話只會調(diào)用8次的getView()方法,若設(shè)置成"wrap_content"則會調(diào)用24次,這是為什么?

冰川孤辰
2014-06-21
1 回答
舉報(bào)
0/150
提交
取消
2014-06-22
推薦ListView的xml配置中android:layout_height=""設(shè)置為"match_parent"或固定高度,這樣每顯示一個ListView的item都會調(diào)用一次getView()方法,所以顯示8行,會調(diào)用8次,而當(dāng)把a(bǔ)ndroid:layout_height=""設(shè)置為"wrap_content"時(shí),由于是自適應(yīng)窗體,所以無法確定ListView的高度,所以可能會導(dǎo)致ListView觸發(fā)重繪,這樣在調(diào)用getView()方法的次數(shù)上就會多于總數(shù)據(jù)的8行,所以你看見調(diào)用了24次。這個問題會在后續(xù)講BaseAdapter的時(shí)候全面展開,謝謝你的提問~