所以我們要找到辦法來利用convertView的這個特性。
首先解決convertView重復創(chuàng)建的問題。
我們可以先判斷convertView是否為null,如果為null,再重新創(chuàng)建。
if(convertView == null){ convertView = LayoutInflater.from(context).inflate(R.layout.item_pratice, null); }
這解決了convertView重復創(chuàng)建的問題。
當我們要使用布局中的組件時,會先通過findViewById來聲明組件,這在一般的頁面中沒問題,但如果是一個列表,就有問題了。
findViewById是很浪費時間的。
findViewById要遍歷View的樹形結(jié)構(gòu)來找到對應(yīng)的id,而且這個遍歷是從頭到尾,所以如果該View的層級比價復雜,這個查詢就比較耗時了。
我們在布局文件中采用@+id的形式指定控件id,就會在R文件中生成一個id,也可以采用@id的形式,通過在ids文件中聲明一個id。