android 多次調用getview的position=0
做項目的碰到這麼一個問題:自己定義的GridView的adapter在刷新數據,即調用getView方法時,除了調用正常次數(圖中第2條到第8條)的getView,還會多調用1次getView方法(圖中的第1條)。
原因在於GridView的item的layout中android:layout_height定義為wrap_content , 繪製item高度時係統並不知道item應該繪製多高,它會先取一條來試探以確定item繪製的具體高度,這樣就導致多調用了一次getView方法。在滑動、長按等GridView需要重繪的情況下,getView的調用次數可能會不止多一次。
如果項目對position敏感,可以設置item的layout_height為固定高度值 或 用下列方式過濾掉這一次額外調用的getView方法:
1
2
3
4
5
|
if (position
== parent.getChildCount()){
//正常調用
} else {
//係統為計算item高度額外調用
}
|
另外,listview的情況也類似。
最後更新:2017-04-04 07:03:25