1. 程式人生 > >android listview為什麼會執行很多次,頻繁呼叫getview

android listview為什麼會執行很多次,頻繁呼叫getview

這個問題在前段時間就遇到了,一直不明白怎麼回事,那個時候不習慣用debug,debug不得不說是個好東西,直到有點再看到哪裡的時候,發現問題依然還在,本就打了一下debug,發現執行了很多次,就很納悶,為啥呢,仔細看了很多次程式碼,沒發現哪裡調了幾次,就起1,2個小時還是沒有發現問題,就百度了一下,說了很多的就是listview調了很多getview,造成原因說是xml佈局高度用的是

wrap_content

我還是將信將疑,去試了一下:

這裡執行了3次,,不管資料有幾條都是這樣。

然後改成

match_parent

原理不知道怎麼回事?

有個博主是這樣說,有5條資料,listview會先呼叫onMeasure,這裡會呼叫getview載入5條資料,onLayout會呼叫一次又會載入5條資料,按理說,那麼onDraw這裡應該也會呼叫一次,載入5條資料,與上面載入3次完全重合,哈哈不知道是不是這樣,只是猜測,並沒有實踐過,等有時間就去論證一下。

可以看看其他博主的理解Android ListView優化之getView頻繁多次呼叫與ViewHolder工作原理