一、什么是ListView
Listview是一個能將數據集合以動態滾動的方式展示到用戶界面上的View。
二、ListView適配器模式
ListView適配器
Adapter是數據源和ListView的橋梁,Adapter負責為每個數據制作View,交給ListView來顯示。ListView中的每個項的顯示都會調用getView()方法。
三、ListView的RecycleBin機制
RecycleBin原理圖
元素6滑入界面時,會復用元素0的Item。
四、ListView的優化
使用converView復用和ViewHolder:當有view移除界面的時候,其會變成convertView,因此,在調用getView()方法的時候,先判斷convertView是否為空,為空的話使用加載新布局和ViewHolder,并用ViewHolder綁定布局中的控件,然后在convertView中保存ViewHolder;若convertView不為空,直接從convertView中取出已保存的ViewHolder,再進行其他的操作。ViewHolder是一個內部類,用來保存控件信息,以減少findViewById()的次數。
使用三級緩存/設置滑動監聽事件 :可以使用三級緩存加載圖片;在getView()方法中做耗時操作會使ListView卡頓,非要做耗時操作可以給ListView設置監聽事件,當ListView停止滑動時,再加載圖片之類的。
避免半透明元素/設置硬件加速 :在getView()中使用非透明元素的效率比透明元素要高;設置硬件加速可以提高圖片的加載效率。