1、RecyclerView的緩存
在RecyclerView中,有兩種緩存:Scrap和Recycle。
Scrap緩存是指里面緩存的View是接下來(lái)需要用到的,即里面的綁定的數(shù)據(jù)無(wú)需更改,可以直接拿來(lái)用的;而Recycle的緩存的View為里面的數(shù)據(jù)需要重新綁定,即需要通過(guò)Adapter重新綁定數(shù)據(jù)。
當(dāng)我們?nèi)カ@取一個(gè)新的View時(shí),RecyclerView的邏輯流程是:
a:首先去檢查Scrap緩存是否有對(duì)應(yīng)的position的View,如果有,則直接拿出來(lái)可以直接用,不用去重新綁定數(shù)據(jù);
b:如果沒(méi)有,則從Recycle緩存中取,回調(diào)Adapter的onBindViewHolder方法,再將綁定好新數(shù)據(jù)的View返回。
c:如果Recycle緩存為空,初始化View,并調(diào)用onCreateViewHolder方法,綁定數(shù)據(jù)。
2、滾動(dòng)方法:
scrollBy(x, y)這個(gè)方法是自己去控制移動(dòng)的距離,單位是像素
scrollToPosition(position)這個(gè)方法的作用是定位到指定項(xiàng),該項(xiàng)顯示出來(lái)不一定位于組件頂部
smoothScrollToPosition(position)和scrollToPosition(position)效果基本相似,前者是平滑到你想顯示的項(xiàng)
((LinearLayoutManager)recyclerView.getLayoutManager()).scrollToPositionWithOffset(position,0)
這種方式是定位到指定項(xiàng)如果該項(xiàng)可以置頂就將其置頂顯示。
3、
關(guān)于RecyclerView
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 簡(jiǎn)介: 提供一個(gè)讓有限的窗口變成一個(gè)大數(shù)據(jù)集的靈活視圖。 術(shù)語(yǔ)表: Adapter:RecyclerView的子類(lèi)...
- Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
- 知識(shí)框架(腦圖) 技術(shù)出現(xiàn)的背景 ListView沒(méi)有強(qiáng)制要求ViewHolder ListView不能快速實(shí)現(xiàn)線...
- 我失業(yè)了,在哪間小飯店上班才9天,老板就冷冷的對(duì)我說(shuō),我看你也無(wú)心在這里工作,老是說(shuō)些讓我們不開(kāi)心的話有什么意思?...