一个为RecyclerView打造的轻量级快速的适配器
作者lufficc,源码LightAdapter,一个为RecyclerView打造的轻量级,可配置化,无侵入性,快速的Adapter。我们使用RecyclerView的Adapter无非就几个目的:1. 基本使用1. 显示多种类视图1. 添加header和footer1. 滑到底部自动加载更多(加载失败,重新加载等多种状态)至于下拉刷新,Google已经提供了SwipeRefreshLayout,它已经非常好用,无需重复造轮子,而其他的功能LightAdapter均已实现。注意,滑到底部自动加载更多其实不属于LightAdapter的功能,而是LightAdapter的一个扩展footer,你完全可以不用或者实现自己的footer,而对LightAdapter没有任何影响。下面说一下LightAdapter的核心:LightAdapter的核心其实是多类型视图,是看了drakeet/MultiType的开源库受到启发并进行了改进(没用采用全局静态注册,注册时添加泛型约束,减少出错)。先说滑到底部自动加载更多原理:RecyclerView的Adapter的原理大家都知道:当某一个Item显示在屏幕中时,会调用Adapter的onBindViewHolder方法来让你绑定数据,但我们可以不用来绑定数据,列表中的最后一个Item出现时,在这个Item会调用onBindViewHolder方法,所以如果增加一个回调,那这个Item不就是一个可以加载更多的Item了吗?原理就是这么简单。所以header和footer其实只是一个和你的普通数据类型不一样的Item罢了,可以加载更多的Footer也不例外,而LightAdapter的工作只是管理这些多类型Item,并不关心具体的逻辑。所以,当你不使用LoadMoreFooter时,LightAdapter便退化成普通的Adapter,而且性能没有任何损失。( 性能测试可以参考:drakeet/MultiType )
- 1
- 粉丝: 7
- 资源: 939
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助