學習RecyclerView應該把控的幾個點

重點使用步驟
一、onCreat中拿到該RecyclerView

二、初始化數據(也可以是在拿控件之前):

(1)拿到數據,一般從服務器獲得,demo中是自己初始化.

(2)初始化一個集合List,在類中 ,Object可以爲任意對象

(3)初始化一個Adapter(源碼用了適配器模式),在類中

(4) 初始化Item佈局 三、初始化適配器,該適配器繼承
RecyclerView.Adapter mAdapter.MyViewHolder>

(1) 重寫onCreateViewHolder MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType);

(1.1) new Holder(未編寫), 用填充器 LayoutInflater.from( Context).inflate(R.layout.item_home(//layout//), parent, false) 作爲構造函數的參數,作用是將佈局文件轉化成Holder
(1.2)return holder

(2) 編寫Holder 繼承ViewHolder

(2.1) 編寫構造方法參數爲View

(2.1.1) super(view)

(2.1.2) 拿到所有控件,並提升爲成員變量 (3) 重寫onBindViewHolder(MyViewHolder holder, int position);

(3.1) holder.XXX.setXX 將數據(從集合中拿到的,position作爲參數)設置上去

(4) 重寫int getItemCount(); return 集合.size();
重要關鍵點
整體設計
![!佈局策略](https://chacojack.github.io/2016/08/20/RecyclerView%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E4%B8%80-%E6%95%B4%E4%BD%93%E8%AE%BE%E8%AE%A1/02.png)

  1. RecyclerView佈局十分靈活, RecyclerView將自己的佈局策略全權交給了LayoutManager。仔細閱讀源碼還可以發現, View的添加,都是通過LayoutManager完成的。
  2. LayoutManager所做的事情就是拿到ViewHolder中的itemView,然後根據LayoutManager中定義的佈局策略,對itemView進行佈局,然後添加到RecyclerView中。
  3. RecyclerView動畫的靈活性是通過ItemAnimator實現的。各位猿們可以通過繼承ItemAnimator,然後實現裏面的方法,來實現各種各樣的動畫效果。
  4. RecyclerView裝飾系統設計思路,研究ItemAnimator即可

RecyclerView的複用
這裏寫圖片描述

介紹都說的很明白了,還有其實ViewHolder的創建和bind都是由Recycler執行的。還有LayoutManager獲得ViewHolder的itemView,也是通過Recycler提供的。簡單介紹一下Recycler和RecyclerViewPool的內部結構。

1.Recycler裏有幾個ViewHolder的容器,用來存儲不同狀態的ViewHolder,以便之後複用。其中ViewCacheExtension類,是用戶可以自定義複用機制的類。

2.RecyclerViewPool,這個可以從外部對多個RecyclerView設置同一個RecyclerViewPool,從而實現多個RecyclerView中的ViewHolder的複用。

轉載自 柴澤建_Jack 感謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章