所以我們要找到辦法來利用convertView的這個(gè)特性。

    首先解決convertView重復(fù)創(chuàng)建的問題。

    我們可以先判斷convertView是否為null,如果為null,再重新創(chuàng)建。

if(convertView == null){
   convertView = LayoutInflater.from(context).inflate(R.layout.item_pratice, null);
}

    這解決了convertView重復(fù)創(chuàng)建的問題。

    當(dāng)我們要使用布局中的組件時(shí),會(huì)先通過findViewById來聲明組件,這在一般的頁面中沒問題,但如果是一個(gè)列表,就有問題了。

    findViewById是很浪費(fèi)時(shí)間的。

    findViewById要遍歷View的樹形結(jié)構(gòu)來找到對(duì)應(yīng)的id,而且這個(gè)遍歷是從頭到尾,所以如果該View的層級(jí)比價(jià)復(fù)雜,這個(gè)查詢就比較耗時(shí)了。

    我們?cè)诓季治募胁捎聾+id的形式指定控件id,就會(huì)在R文件中生成一個(gè)id,也可以采用@id的形式,通過在ids文件中聲明一個(gè)id。

網(wǎng)友評(píng)論