Android與FireBase(三)RecyclerView

延續「綠豆湯」Hank老師的實作:
https://litotom.com/2016/11/25/as_222_firebase_db_2/


為何要使用RecyclerView?

可參考以下說明:http://julianchu.net/2016/03/13-recyclerview.html


簡單來說,ListView在資料更新中
不斷刷新List的View元件,是浪費系統資源的行為,
過大的List資料,將會產生肥大的ListView


而Recycler顧名思義


就是它能夠回收利用View,只抽換資料就好,
而要實現此UI,需要以下幾個步驟:

1.繼承RecyclerView.Adapter類別,實現自己的Adapter類別
2.繼承RecyclerView.ViewHolder類別,在Adapter類別下,實現自己的ViewHolder類別
3.承步驟1,覆寫
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {}
@Override
public void onBindViewHolder(ViewHolder holder, int position){}
@Override
public int getItemCount() {}
4.宣告Adapter類別物件,設定給RecyclerViewUI物件


其中需要注意的是:



※JavaBean類別,可用右鍵->Generate->自動產生Gettrt、Setter方法
※adapter.notifyDataSetChanged();
的方法用來通知UI改變資料,請放在list.add行為之後,
否則會發生資料為空的問題(源自asynchronously 非同步的問題)
※public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType)
方法下,context可進一步用來取得LayoutInflater物件,運行inflate方法



現有Android可搜尋的教學資源相當豐富,如有侵權請告知,當立即下架。