分享我的2个类完成的RecyclerView封装 , 简洁通用

个人地址

项目Github 地址

有问题可以直接留言或 联系QQ:1079569023


基本写法存在问题

  1. 不管是ListView还是RecyclerView,大多数的基本写法都是写适配器,一堆Adapter,喜欢复制粘贴的内容更是混乱,非常容易出错
  2. 部分功能代码写在适配器中,某些功能不能复用,冗余度过高,免不了会复制粘贴
  3. 如果遇到复杂的列表时候(比如聊天界面),Adapter的内容更是爆炸
  4. 问题就是复用性偏差,代码冗余度高,可读性不好,容易出错.

库能够解决的问题

  1. 主要解决代码复用性问题,代码非常简洁,基础流程固定
  2. 这是一个组件化思维(类似自定义View),给定一个数据源,组件来管理UI的展示和部分业务(避免过于复杂的业务,影响绘制效率)。
  3. 通用性的封装,只有1个RecyclerAdapter适配器,无需增加其他xxxAdapter;
  4. RecyclerView的展示一项Item对应一个xxxDataHolder,无需设置ViewType 任意DataHolder的组合即可完成任意复杂页面的拼接(比如复杂的首页,聊天界面)

项目介绍

主要是对代码调用流程和固定代码的封装

库的核心只有2个类

  1. RecyclerAdapter:通用的一个适配器
  2. RecyclerDataHolder:通用的数据包装类
  3. 还有几个很常用的通用功能类,可以忽略

使用简介

  1. 第1步:只有一个RecyclerAdapter适配器设置给RecyclerView (代码固定)

  2. 第2步:主要代码就是创建ReyclerView展示的一项

 xxxItemDataHolder类继承RecyclerDataHolder的实现方法即可 (写法固定)
 xxxItemDataHolder 需要实现方法三个方法 
 
 getItemViewLayoutId: 展示的布局id (写法固定)
 onCreateViewHolder: 设置ViewHolder,可自定义或直接new RecyclerViewHolder() (写法固定)
 onBindViewHolder: 给ViewHolder设置数据 (变化的UI展示和业务处理)
  1. 第3步:创建数据源 List<xxxItemDataHolder> 并设置给RecyclerAdapter即可(写法固定)

库中的其他几个功能类

  1. RecyclerCallBack 常用事件回调接口 (很多都在ViewHolder内部完成)
  2. RecyclerViewHolder 添加了几个常用方法
  3. ItemSpaceDecoration 用来设置RecyclerView的行间距
  4. StickRecyclerAdapter 浮动标题设置
  5. OnPageScrollBottomListener 滚动到底部监听

RecyclerView优化技巧

  1. LinearLayoutManager通过setInitialPrefetchItemCount(int num)方法设置item预加载的数量
  2. item 高度固定,设置setHasFixedSize(true)
  3. 一定要避免过于复杂的onBindViewHolder流程,简化这里的业务和减少new操作

代码已在多个项目中使用,已改版多次,目前功能稳定,抽出来远程库,方便复用。具体使用,可以下载代码,运行里面的Demo即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,335评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,472评论 2 59
  • 【Android 控件 RecyclerView】 概述 RecyclerView是什么 从Android 5.0...
    Rtia阅读 308,120评论 27 439
  • 原文链接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影阅读 33,037评论 6 472
  • 当珠海 台风 过境 今夜松江 却刮起了 酒风 和诗风 我以为 这只是一场 清汤寡水的饭局 谁知道 是一道道 字字珠...
    向日葵爱呀爱太阳阅读 715评论 0 0