91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于android:listview getChildAt 為空的解釋

發布時間:2020-06-27 18:09:38 來源:網絡 閱讀:4758 作者:manlianman 欄目:移動開發

今天遇到了一個很奇怪的問題,我所設定的一個listview 有10個item,當我的 list.getCount 的數量對其進行for 循環的時候,當到第6個item的時候,得到的view對象卻是null,這讓我很費解,經過一番查詢,明白了這個問題是怎么回事,與大家分享下:

   關于android:listview  getChildAt 為空的解釋

如圖片紅框部分的listview部分。這其實涉及到android的listview控件的內存處理問題:當我們加載listview時,如果這個listview的數據量比較多,它是顯示不完全的,但這時是否是所有的數據都已經加載?答案是否定的,listview加載的數量是當前屏幕展示的數量再多四個,分別是上下各自緩沖兩個,這就是問題所在。當我listview有10個item,但我當前的布局最多顯示4個,所以當去得到第七個的時候,會出現得到的item為空的現象。解決辦法如下:

public class MeasureitemListener implements OnItemClickListener{


@Override

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,

long arg3) {

firstlocation=arg2;

datalDialog= new LoadDialogDao(getActivity(),"數據加載中...");

datalDialog.show();

for(int i=0;i<measure_type_list.getCount();i++){

int  firvisible=measure_type_list.getFirstVisiblePosition(); \\獲得第一個可見item的index

            View v=measure_type_list.getChildAt(i-firvisible);

            if(v!=null){

            if (arg2 == i) {

                v.setBackgroundColor(R.color.lightblue);

            } else {

            v.setBackgroundResource(R.drawable.list_item_selector);

            }

            }

        }

}

};

解決思路就是加上如上紅字部分,獲得屏幕的第一個可見item的index,然后用當前的child的index減去這個值就可以得到當前的對象了。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临洮县| 嘉荫县| 孙吴县| 米泉市| 南平市| 陕西省| 古交市| 浮梁县| 滨海县| 义马市| 桂林市| 青岛市| 蓬莱市| 霍城县| 巩义市| 孙吴县| 北碚区| 龙胜| 綦江县| 杭锦旗| 九龙县| 龙岩市| 康乐县| 南郑县| 清原| 塔城市| 枝江市| 新密市| 玉山县| 哈尔滨市| 怀远县| 闵行区| 屏边| 东阿县| 吉林省| 黔东| 米易县| 福州市| 同心县| 恩施市| 嘉黎县|