今天要來說更深層的清單元件,是為了減少內存才能提升效能。
首先,簡單介紹ViewHolder,他並不是Android SDK所提供的API,主要是要提升清單元件的效率,讓資源夠重複利用。而接著RecyclerView是用來取代ListView跟GridView的清單元件,大家稱做是ListView的進化版,它擁有更多元的呈現樣貌,更強制實現View的回收機制,也就是我們提到的ViewHolder類別,當我們使用RecyclerView時,定義一個Adapter需定義好對應的ViewHolder,它必須搭配類別中的Adapter跟ViewHolder,並實作onCreateViewHolder()跟 onBindViewHolder來運行回收機制。
而它的呈現方式是由LayoutManager決定,常見的是Linear LayoutManager跟GridLayoutManager,也能透過屬性修改清單的呈現方向。RecyclerView與ListView的差別有以下一些差異:
1.在回收方面: RecyclerView是以ViewHolder作為回收單位,而ListView是以convertView 作為回收單位,需要手動添加ViewHolder 。
2.呈現樣貌的方面:如同前面說的,RecyclerView呈現的樣貌比較多,也比較有豐富性,ListView則只能呈現單一樣貌。
這篇先做文字上的簡介,下一篇會以之前所學的範例來講解。