仿淘寶、京東首頁(yè)慕嚷,通過(guò)兩層嵌套的RecyclerView實(shí)現(xiàn)tab的吸頂效果
聲明
本項(xiàng)目是根據(jù)下方作者的項(xiàng)目進(jìn)行改進(jìn)而來(lái)的,請(qǐng)先閱讀大佬的文章以了解其原理
https://github.com/xmuSistone/PersistentRecyclerView
效果
示例.gif
附上項(xiàng)目地址https://github.com/Ubitar/NestRecyclerView_V2
優(yōu)點(diǎn)
1毕泌、解決了NestRecyclerView_V1
中父子RecyclerView
交替時(shí)交互不流暢的問(wèn)題
2喝检、不強(qiáng)制使用LinearLayoutManager
對(duì)項(xiàng)目做出了如下修改:
1、讓NestRecyclerView
和NestChildRecyclerView
與ViewPager
等組件解耦
2撼泛、使用Kotlin
對(duì)代碼做出了精簡(jiǎn)挠说,同時(shí)改進(jìn)原文的部分變量名稱,更易懂
3愿题、父RecyclerView
的Adapter
必須實(shí)現(xiàn)INestAdapter
接口規(guī)范
4损俭、NestRecyclerView_V2
在使用時(shí)需自己設(shè)置LayoutManager
常見(jiàn)問(wèn)題
1、怎么控制子RecyclerView是否滾動(dòng)到了底部
yourAdapter.setOnChildScrollEndListener { recyclerView, newState ->
ToastUtils.showShort("滾動(dòng)子RY到底部了")
//這里可以加載更多數(shù)據(jù)
}
可以參考demo中的adapter
中createChildRecyclerView
的寫(xiě)法判斷是否滾動(dòng)到底部
2抠忘、實(shí)現(xiàn)起來(lái)好復(fù)雜
是有點(diǎn)復(fù)雜撩炊,雙RecyclerView貴在可以循環(huán)利用視圖,如果你的想要實(shí)現(xiàn)的業(yè)務(wù)功能不是很大崎脉,或許你可以考慮下這個(gè)大佬的庫(kù)http://www.reibang.com/p/0783b0a37fa1
其他詳情請(qǐng)看源碼