RecyclerView作爲官方替代ListView的控件,它具有以下優點
- 自定義佈局方式,使我們輕鬆實現ListView、GridView形式,瀑布流形式
- 定義ViewHolder代替View,封裝了緩存判斷邏輯
RecyclerView實現流程
mRecyclerView.setLayoutManager(getActivity());
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setAdapter(mAdapter);
通過執行以上代碼片段,執行流程如下圖的
RecyclerView的設計
- 通過橋接模式,使RecyclerView 將佈局方式獨立成LayoutManager,實現對佈局的定製化。
- 通過組合模式,使RecycleView通過dispatchLayout對Item View進行佈局繪製的。
- 通過適配器模式,ViewHolder將RecycleView與ItemView聯繫起來,使得RecycleView方便操作ItemView。
- 通過觀察者模式,給ViewHolder註冊觀察者,當調用notifyDataSetChanged時,就能重新繪製。
使用RecyclerView注意問題
- 沒有處理Item點擊事件
- 沒有Header 和Footer接口
- RecyclerView的操作單位時ViewHolder,不再是View
- ViewHolder是android中定義的Adapter基類中的泛型參數