CommonRecycler
Introduction: 通用 RecylerAdapter,内置 XRecyclerView,兼容上下拉与空页面,高复用,一个 Adapter 通用所有页面,支持动画,懒人专属
Tags:
recyclerView-adapter-XrecyclerView-上拉-下拉-加载更多-复用-动画-这个一个极简的通用 RecyclerView 的 Adapter,入侵性低,一个 Adapter 解决日常开发中常用的各种功能,你无需再写任何 Adapter 代码,让你普通的 RecyclerView 变得灵活、解耦、通用、丰富起来吧。
一、功能
状态 | 功能 |
---|---|
支持 | 系统 RecyclerView 和任意数据实体 |
支持 | 动态加载各种 Item 类型的列表、瀑布流、网格 |
支持 | 列表、瀑布流、网格的刷新和加载更多效果,支持上下左右各个方向 |
支持 | 自定义刷新和加载效果 |
支持 | 内置支持各种列表和方向的万能分割线 |
支持 | 点击和长按效果 |
支持 | 空页面 |
支持 | Item 的动画效果 |
支持 | Header 头支持 |
支持 | 一种数据实体对应多种 Item |
支持 | 侧滑、拖拽 |
支持 | 快速实现聊天模式(DEMO 包含 Dagger2、MVP、RxJava2、Realm、键盘弹出优化处理) |
支持 | Kotlin 与 Kotlin Demo(Dagger2、MVP、RxJava2、(Realm、Room)) |
待支持 | 内置更多自定义 Manager |
二、依赖
在你的项目 project 下的 build.gradle 添加
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在 module 下的 build.gradle 添加依赖
dependencies {
compile 'com.github.CarGuo.LazyRecyclerAdapter:CommonRecycler:v4.0.0'
}
(Kotlin)在 module 下的 build.gradle 添加依赖
dependencies {
compile 'com.github.CarGuo.LazyRecyclerAdapter:CommonRecycler-Kotlin:v4.0.0'
}
三、效果
更多效果请看 DEMO
聊天 DEMO 中包含 Dagger2、MVP、RxJava2、Realm、Factory 模式、键盘弹出优化处理。
四、使用方法
1、创建管理器
管理器绑定数据、布局、Holder。其中 XXXHolder 需要继承 BindRecyclerBaseHolder。
(BindRecyclerBaseHolder 是一个继承了 RecyclerView.ViewHolder 的基类。)
//创建管理器
BindSuperAdapterManager normalAdapterManager = new BindSuperAdapterManager();
//将数据 Model 类、布局 layoutId、RecyclerView.ViewHolder 绑定
normalAdapterManager
.bind(BindImageModel.class, R.layout.horizontal_image_item, BindImageHolder.class)
.bind(BindTextModel.class, R.layout.horizontal_text_item, BindTextHolder.class)
.bind(BindClickModel.class, R.layout.horizontal_click_item, BindClickHolder.class)
.bindEmpty(BindNoDataHolder.NoDataModel.class, BindNoDataHolder.ID, BindNoDataHolder.class)
2、创建 Adapter,设置 RecyclerView
//通过管理器构建 Adapter
BindSuperAdapter adapter = new BindSuperAdapter(context, normalAdapterManager, datas);
recycler.setLayoutManager(staggeredGridLayoutManager);
recycler.setAdapter(adapter);
更多高级用法请看 Demo 与wiki 文档。
License
本项目把 XRecyclerView 的部分功能拆解到 Adapter。
MIT