android中ListView多次刷新重復(fù)執(zhí)行g(shù)etView的解決方法
更新時間:2013年06月04日 16:10:34 作者:
以前倒是沒有注意listview的getView會重復(fù)執(zhí)行多次,在測試的時候去斷點跟蹤,發(fā)現(xiàn)同一條數(shù)據(jù)不斷的重復(fù)執(zhí)行,下面與大家分享下正確的解決方法,希望對你有所幫助
以前倒是沒有注意listview的getView會重復(fù)執(zhí)行多次,這次因為布局比較復(fù)雜,所以在測試的時候去斷點跟蹤,發(fā)現(xiàn)同一條數(shù)據(jù)不斷的重復(fù)執(zhí)行。覺得很奇怪,于是上網(wǎng)搜索了一下。網(wǎng)上的解釋基本一致,就是ListView布局時height和width都不是fill_parent,導(dǎo)致不斷計算高度,不斷刷新?;蛘哒f它的父容器沒有設(shè)置成fill_parent。
可以布局太復(fù)雜的情況下,全部按照fill_parent去調(diào)整不現(xiàn)實。所以想了另一種方案,就是動態(tài)固定高度。
在程序運行后,固定ListView的高度,然后再初始化Item信息。
private void fixedListView(){
listView = (ListView) findViewById(R.id.listview);
ViewGroup.LayoutParams params = listView.getLayoutParams();
layout = (HorizontalScrollView) findViewById(R.id.layout);
params.height = layout.getHeight(); //需要設(shè)置的listview的高度,你可以設(shè)置成一個定值,也可以設(shè)置成其他容器的高度,如果是其他容器高度,那么不要在oncreate中執(zhí)行,需要做延時處理,否則高度為0
listView.setLayoutParams(params);
}
這樣發(fā)現(xiàn)ListView刷新的速度大幅加快。同事也解決了Item中文本輸入EditText中如果存在addTextChangedListener(new TextWatcher()的監(jiān)聽,導(dǎo)致多次執(zhí)行監(jiān)聽代碼的情況。
可以布局太復(fù)雜的情況下,全部按照fill_parent去調(diào)整不現(xiàn)實。所以想了另一種方案,就是動態(tài)固定高度。
在程序運行后,固定ListView的高度,然后再初始化Item信息。
復(fù)制代碼 代碼如下:
private void fixedListView(){
listView = (ListView) findViewById(R.id.listview);
ViewGroup.LayoutParams params = listView.getLayoutParams();
layout = (HorizontalScrollView) findViewById(R.id.layout);
params.height = layout.getHeight(); //需要設(shè)置的listview的高度,你可以設(shè)置成一個定值,也可以設(shè)置成其他容器的高度,如果是其他容器高度,那么不要在oncreate中執(zhí)行,需要做延時處理,否則高度為0
listView.setLayoutParams(params);
}
這樣發(fā)現(xiàn)ListView刷新的速度大幅加快。同事也解決了Item中文本輸入EditText中如果存在addTextChangedListener(new TextWatcher()的監(jiān)聽,導(dǎo)致多次執(zhí)行監(jiān)聽代碼的情況。
您可能感興趣的文章:
- Java判斷List中有無重復(fù)元素的方法
- 獲取python的list中含有重復(fù)值的index方法
- python生成不重復(fù)隨機數(shù)和對list亂序的解決方法
- Java中ArrayList去除重復(fù)元素(包括字符串和自定義對象)
- java 查找list中重復(fù)數(shù)據(jù)實例詳解
- list集合去除重復(fù)對象的實現(xiàn)
- java正則表達式實現(xiàn)提取需要的字符并放入數(shù)組【ArrayList數(shù)組去重復(fù)功能】
- Android中ListView異步加載圖片錯位、重復(fù)、閃爍問題分析及解決方案
- 2種Java刪除ArrayList中的重復(fù)元素的方法
- 兩個List集合取相同重復(fù)數(shù)據(jù)的方法
相關(guān)文章
Android Studio一直處于Building的兩種解決方法
很多朋友都遇到過打開別人的項目一直處于Building‘XXX’Gradle project info的情況。下面小編給大家?guī)砹薃ndroid Studio一直處于Building的解決方法,感興趣的朋友一起看看吧2018-08-08Android開發(fā)仿bilibili刷新按鈕的實現(xiàn)代碼
這篇文章主要介紹了Android 仿bilibili刷新按鈕的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-10-10詳解Android數(shù)據(jù)存儲之SQLCipher數(shù)據(jù)庫加密
對于已經(jīng)ROOT的手機來說的沒有任何安全性可以,一旦被利用將會導(dǎo)致數(shù)據(jù)庫數(shù)據(jù)的泄漏,本篇文章主要介紹了Android數(shù)據(jù)存儲之SQLCipher數(shù)據(jù)庫加密,具有一定的參考價值,有需要的可以了解一下。2016-12-12Android用TextView實現(xiàn)跑馬燈效果代碼
大家好,本篇文章主要講的是Android?TextView實現(xiàn)跑馬燈效果代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01