仿淘寶蹬敲、京東首頁暇昂,通過兩層嵌套的RecyclerView實現(xiàn)tab的吸頂效果
目前NesteRecyclerView_V2(方案二)已更新,推薦伴嗡。
聲明
本項目是根據(jù)下方作者的項目進(jìn)行改進(jìn)而來的急波,請先閱讀大佬的文章以了解其原理
https://github.com/JasonGaoH/NestedRecyclerView
https://juejin.im/post/5d5f4cfcf265da03e61b18b8
效果
示例.gif
附上項目地址 https://github.com/Ubitar/NestRecyclerView
對項目做出了如下修改:
1、使用Kotlin
對代碼做出了精簡闹究,同時改進(jìn)原文的部分變量名稱幔崖,更易懂
2、父RecyclerView
的Adapter
必須實現(xiàn)INestAdapter
接口規(guī)范
3、添加setPreLoadHeight
函數(shù)以控制RecyclerView
可見范圍外的視圖預(yù)加載
其他詳情請看https://github.com/Ubitar/NestRecyclerView
常見問題
1赏寇、SmartRefresLayout
作為最外層父組件且Tab欄為固定狀態(tài)吉嫩,下拉列表會觸發(fā)父組件的下拉刷新
我推薦監(jiān)聽外層NestRecyclerView
的滾動高度來控制刷新框架是否開啟下拉刷新setEnableRefresh(Boolean)
2、怎么控制子RecyclerView是否滾動到了底部
yourAdapter.setOnChildScrollEndListener { recyclerView, newState ->
ToastUtils.showShort("滾動子RY到底部了")
//這里可以加載更多數(shù)據(jù)
}
可以參考demo中的adapter
中createChildRecyclerView
的寫法判斷是否滾動到底部
3嗅定、實現(xiàn)起來好復(fù)雜
是有點復(fù)雜自娩,雙RecyclerView貴在可以循環(huán)利用視圖,如果你的想要實現(xiàn)的業(yè)務(wù)功能不是很大渠退,或許你可以考慮下這個大佬的庫http://www.reibang.com/p/0783b0a37fa1 只有億點點bug而已