RecyclerView是一個Android中列表展示的控件,可以實現各種列表的展示,包括了多内容、多類型、橫向豎向、多列、動畫、點擊長按等各種效果
前言相信RecyclerView對Android初學者來說是一個比較難理解的部分,因為它會涉及到很多部分
比如我在最開始的時候就很難理解為什麼要用layoutManager和adapter,我想直接定義子布局,再定義子元素内容,最後一個列表賦值到RecyclerView不就可以了嗎
這篇文章主要是為了對RecyclerView有更好的理解,可以真正明白為什麼要這樣做,如果可以回答上來下面的問題的話,說明對RecyclerView是有比較清晰的理解了
ReyclerView有幾部分?為什麼要有這幾部分?
講解組成部分RecyclerView需要了解以下六部分:
現在Gredicer,也就是小G,有了一個想法
“在一個界面上如果有多個相同類别的顯示内容,一個一個複制太麻煩了,要是能直接讀取列表裡的内容顯示出來就好了”
此時,RecyclerView的雛形就出來了:
這個時候其實基本的思路有了,但是會有幾個問題
OK,有了問題就要解決
于是,小G又想到了,我可以專門用VIewHolder來做UI和内容的綁定,同時也解決了内容判斷處理的問題,然後專門用一個适配器Adapter,把這一整個部分,包括點擊或者其他的事件都寫在這裡,RecyclerView隻需要展示就行了,在各個界面寫RecyclerView,然後如果需要什麼樣的效果就綁定Adapter就可以了
很好,這樣的話整個結構就變成了如下所示
但是但是,還是會有問題在的,比如:
至于第一個,小G想到了好辦法,要想保證每個RecyclerView不同的方向,并且跟數據還沒關系,那我就再定一個東西呗,名字就叫LayoutManager,用它來定義通用的幾個布局,然後直接讓RecyclerView來使用它就好啦!
第二個,小G就犯難了,這中間有好幾個關鍵的問題
然後.....又延伸出來幾個問題
啊這,啊這
看來還是得加
“既然動畫的話,就專門加個ItemAnimator吧,然後邏輯跟LayoutManager一樣,需要獨立性”
“另一個,我在LayoutManager和ViewHolder之間再加一個緩存Recycler,用這個提前來計算和存儲增删改查情況下的布局,到時候隻需要從原有布局→動畫→緩存布局或者反過來就好啦”
具體示例如下:
到現在基本的RecyclerView就完成了!
小G高興的去吃飯了
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!