閱讀768 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go 放棄了,Google 搜索不再提醒敏感關鍵字
  下一篇:go 大學生應聘者麵試遇怪題時怎麼辦?