CommonRecycler

Introduction: 通用 RecylerAdapter,内置 XRecyclerView,兼容上下拉与空页面,高复用,一个 Adapter 通用所有页面,支持动画,懒人专属
More: Author   ReportBugs   
Tags:
recyclerView-adapter-XrecyclerView-上拉-下拉-加载更多-复用-动画-

这个一个极简的通用 RecyclerView 的 Adapter,入侵性低,一个 Adapter 解决日常开发中常用的各种功能,你无需再写任何 Adapter 代码,让你普通的 RecyclerView 变得灵活、解耦、通用、丰富起来吧。

Build Status

一、功能

状态 功能
支持 系统 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
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea