所以我們要找到辦法來利用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。