仿淘宝、京东首页,通过两层嵌套的RecyclerView实现tab的吸顶效果
目前NesteRecyclerView_V2(方案二)已更新,推荐。
声明
本项目是根据下方作者的项目进行改进而来的,请先阅读大佬的文章以了解其原理
https://github.com/JasonGaoH/NestedRecyclerView
https://juejin.im/post/5d5f4cfcf265da03e61b18b8
效果
附上项目地址 https://github.com/Ubitar/NestRecyclerView
对项目做出了如下修改:
1、使用Kotlin
对代码做出了精简,同时改进原文的部分变量名称,更易懂
2、父RecyclerView
的Adapter
必须实现INestAdapter
接口规范
3、添加setPreLoadHeight
函数以控制RecyclerView
可见范围外的视图预加载
其他详情请看https://github.com/Ubitar/NestRecyclerView
常见问题
1、SmartRefresLayout
作为最外层父组件且Tab栏为固定状态,下拉列表会触发父组件的下拉刷新
我推荐监听外层NestRecyclerView
的滚动高度来控制刷新框架是否开启下拉刷新setEnableRefresh(Boolean)
2、怎么控制子RecyclerView是否滚动到了底部
yourAdapter.setOnChildScrollEndListener { recyclerView, newState ->
ToastUtils.showShort("滚动子RY到底部了")
//这里可以加载更多数据
}
可以参考demo中的adapter
中createChildRecyclerView
的写法判断是否滚动到底部
3、实现起来好复杂
是有点复杂,双RecyclerView贵在可以循环利用视图,如果你的想要实现的业务功能不是很大,或许你可以考虑下这个大佬的库https://www.jianshu.com/p/0783b0a37fa1 只有亿点点bug而已