androidlistview嵌套
⑴ android scrollview嵌套webview和listview,怎麼滑動不卡頓
只要是listview上下滑動卡頓,其主要原因是因為在listview填充適配器的時候。在重寫的類BaseAdapter方法
getView();被無限的循環的調用;這樣消耗了大量的內存導致listview上下滑動的時候,出現了卡頓。原因就在於measure過
程,ListView一般都會根據屏幕載入多個Item,而且也會同時顯示這些已經載入過的若干組Item,而這些Item的父元素都是這個
ListView。
通過Google的解釋:View在Draw的時候分成兩個階段:measure和layout,在measure階段時主要就是為了計算兩個參
數:height和width。而且要注意的是,這是個遞歸的過程,從頂向下,DecorView開始依次調用自己子元素的measure。計算完成這兩
個參數後就開始layout,最後再是draw的調用。對於ListView,當然每一個Item都會被調用Measure方法,而在這個過程中
getView和getCount會被調用,而且看用戶的需求,可能會有很多次調用。問題就在於在layout中的決定ListView或者它的父元素的
height和width屬性的定義了。 根據我的經驗,height和width最好都設置成fill_parent,這樣能避免listview對getView的瘋狂調用。 解決方法就是盡量避免自適應,除非是萬不得已,固定大小或者填充的效果會比較好一些。 還有一點請注意,如果使用了上面的動態測量來設置listview的顯示高度,並使用了fill_parent來設置了listview的屬性,但是仍然不能停止adapter中getView()方法的瘋狂調用;或者還伴有listview內容顯示仍然不完全現象; 根據我自己的實踐經驗來講,你可以這樣做: 把listview放置在LinearLayout中,<LinearLayout中只存在一個listview>; 我推斷是,當你通過動態測量載入的時候,ta需要一個獨立的空間。