ListView 优化
ListView 優化
Listview 優化一
viewHolder 的使用和convertView的復用
viewHolder相當于一個水果籃子,我們把要吃的水果,洗好先放到籃子了,我們要吃的時候直接吃就行了,不需要再一個一個拿去洗了,方便,省力。
首先講下ListView的原理:ListView中的每一個Item顯示都需要Adapter調用一次getView()的方法,這個方法會傳入一個convertView的參數,這個方法返回的View就是這個Item顯示的View。如果當Item的數量足夠大,再為每一個Item都創建一個View對象,必將占用很多內存空間,即創建View對象(mInflater.inflate(R.layout.lv_item, null);從xml中生成View,這是屬于IO操作)是耗時操作,所以必將影響性能。Android提供了一個叫做Recycler(反復循環)的構件,就是當ListView的Item從滾出屏幕視角之外,對應Item的View會被緩存到Recycler中,相應的會從生成一個Item,而此時調用的getView中的convertView參數就是滾出屏幕的緩存Item的View,所以說如果能重用這個convertView,就會大大改善性能。
簡單列表的復用
其中getView是渲染每個Item時進行回調生成View的,方法參數convertView就是ListView傳回可以復用的View,當其不為null時,無需重新創建View,可以直接使用convertView,進行數據渲染即可。其原理是當第一次調用時ListView直接將生成的View緩存到一個ArrayList中,當需要時直接從ArrayList中取出即可:
復雜列表復用
當列表中的item需要不同Item的時候
總結
以上是生活随笔為你收集整理的ListView 优化的全部內容,希望文章能夠幫你解決所遇到的問題。