PowerfulRecyclerViewAdapter:一种RecyclerView的万能适配器实现

PowerfulRecyclerViewAdapter

支持各种ViewHolder类型的RecyclerView.Adapter的实现,是一个万能适配器

项目地址:https://github.com/simplify20/PowerfulRecyclerViewAdapter
欢迎star,fork,提issue.

特性:

  • 使用DataBean关联Data(Model)与ViewHolder;
  • DataBean控制ViewHolder的创建以及数据到ViewHolder的绑定;
  • Adapter的一部分职能由DataBean承担,如创建不同类型的ViewHolder以及绑定数据到ViewHolder,Adapter只用维护数据的相关操作即可;
  • Adapter的onCreateViewHolder和onBindViewHolder中没有switch..case语句,通过DataBean的多态性实现不同的创建和绑定;
  • 使用了本项目的Adapter,使用RecyclerView时就不用写Adapter了;
  • 支持任何种类的ViewHolder(继承自BaseRecyclerViewHolder)
  • 使用接口可以提高ViewHolder及Data的复用性,并且利于测试。

新特性:

Added in 2016-4-10:
新增 @DataBean 注解,目前在[dev分支]上
使用类似Dagger2和DataBinding的编译期注解处理器,在编译器根据模板生成DataBean代码(模板引擎),这样可以省去编写DataBean的成本。
参考下文[使用DataBean注解]

dev分支

类图:

tips:图片看不清可右键另存或新标签页打开后查看

这里写图片描述

主要类:

class CommonRecyclerAdapter:万能适配器,支持插入和删除数据,支持任意类型的ViewHolder(限于RecyclerView)

interface DisplayBean:用于创建ViewHolder

interface DataBean:扩展了DisplayBean接口,可以绑定数据到ViewHolder,也可以创建ViewHolder,是数据与ViewHolder之间的桥梁

使用步骤:

  • 使用CommonRecyclerAdapter作为RecyclerView的Adapter;
 protected CommonRecyclerAdapter adapter;
 ...
 recyclerView.setAdapter(adapter);
  • 根据item内容,继承BaseDataBean,实现自定义的DataBean;
public class BookTitleBean extends BaseDataBean<Book, BookTitleViewHolder> {
   

    public BookTitleBean(Book data) {
        super(data);
    }

    @Override
    public BookTitleViewHolder createHolder(ViewGroup parent) {
        //create an instance of Your ViewHolder
        return new BookTitleViewHolder(getView(parent, BookTitleViewHolder.LAYOUT_ID));
    }
}
  • 根据item内容,继承BaseRecyclerViewHolder,实现自定义ViewHolder;
public 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值