
RecyclerView系列
由浅到深的RecyclerView简单使用和源码解析。
苏火火丶
Adnroid | 江南皮革厂
展开
-
理解RecyclerView(七)—RecyclerView配合使用CoordinatorLayout及Behavior的嵌套滑动机制
前言: 并不是热泪盈眶才叫青春,也不是莽撞热血才叫年轻。不忘初心,便始终都是年轻。多少人把放纵当热血,并把早熟和自律当做陈腐来嬉笑。岁月还未过多流逝之前,他们的身体和精神就已经被掏空,提早告别了青春。一、概述 上一篇文章分析了RecyclerView的滑动原理,依然是由onTouchEvent()触控事件响应的,最终通过遍历所有子View,每个子View调用了底层View的offsetTopAndBottom()或者offsetLeftAndRight()方法来实现滑动的。不同的是Recycler原创 2020-03-24 21:36:16 · 3236 阅读 · 0 评论 -
理解RecyclerView(九)—自定义LayoutManager
前言: 等你发现时间是贼了,它早已偷光你的选择。——《给自己的歌-李宗盛》一、概述 LayoutManager主要用于RecyclerView的布局,itemView的回收和复用,在LayoutManager能对每个item的大小、位置进行更改,做出我们想要的效果。很多优秀的效果都是通过自定义LayoutManager来实现的。在前面的文章源码讲解中,需要自定义LayoutManager则需要重写onLayoutChildren()方法,它是布局RecyclerView的入口,再原创 2020-03-30 16:57:33 · 2263 阅读 · 1 评论 -
理解RecyclerView(八)—RecyclerView的回收复用缓存机制详解
前言: 生命总是要有信仰,有梦想才能一直前行,哪怕走的再慢,也是在前进。一、概述 RecyclerView作为官方指定的高效、高拓展性的列表控件,做了很好的封装,灵活好用,深受我们喜欢。官方对它的介绍:为大量数据提供有限展示窗口的灵活视图。要想在有限的手机内存中展示大量的数据,并且保证不会OOM,它是怎么做到的呢?我们在adapter的onCreateViewHolder()和onBindViewHolder()分别打印了log,其中,onCreateViewHolder()会在原创 2020-03-27 14:46:41 · 3588 阅读 · 3 评论 -
理解RecyclerView(三)—添加分割线、item动画、拖拽和侧滑删除
前言:这个世界充满假象,唯有痛楚不会说谎。——摔跤吧,爸爸一、概述我们在上两篇文章对RecyclerView详细介,包含了基本用法,各种布局管理器的使用以及不同itemType条目类型,那么下面我们会继续对RecyclerView的添加分割线、动画效果、添加拖拽和删除功能进行讲解。(源码在文章最后给出)二、ItemDecoration分割线 通常我们添加分割线都是在item的布局里面添加,这样相对简单,但是有可能增加布局的层级,性能不好而且不太优雅,RecyclerView提供原创 2020-01-16 16:26:52 · 1392 阅读 · 0 评论 -
理解RecyclerView(六)—RecyclerView的滑动原理
前言:当你感到不舒服的时候就是成长的时候。我爱这艰难又拼尽全力的每一天。一、概述 RecyclerView作为一个列表控件,自带滑动功能,实际开发中经常用到,它的滑动原理也是我们需要掌握的,正所谓“知其然更要知其之所然”。RecyclerView的滑动事件处理依然是通过`onTouchEvent()`触控事件响应的,不同的是RecyclerView采用嵌套滑动机制,会把滑动事件通知给支持嵌套滑动的父View先做决定。本文在介绍普通滑动的过程中可能会涉及到嵌套滑动的知识(下篇文章会原创 2020-03-21 18:04:57 · 3479 阅读 · 1 评论 -
理解RecyclerView(五)—RecyclerView的绘制流程
前言:做人如果没有梦想,那和咸鱼有什么区别。 ——《少林足球》一、概述 上一篇文章对RecyclerView中实现了如何高度自定义点击事件、万能ViewHolder、万能适配器的封装和使用。最开始就提到,RecyclerView支持各种各样的布局效果,其核心关键在于RecyclerView.LayoutManager中,使用时我们是需要setLayoutManager()设置布局管理器的。RecyclerView已经将一部分功能抽离出来,在布局管理器中另外处理,也方便开发者自行拓展。原创 2020-03-18 17:12:29 · 2169 阅读 · 0 评论 -
理解RecyclerView(四)—自定义点击事件、万能ViewHolder和简单封装
前言:人不需要活太多样子,你认真做一件事,就会解释所有的事。——《不必交谈时刻》一、概述 上一篇文章RecyclerView(三)中实现了如何添加分割线、动画效果、拖拽和侧滑删除效果,但是在使用的Adapter是没有封装过的,每次都要重写相关方法,下面我们会对Adapter进行简单的封装。RecyclerView的item的相关点击事件也需要自己高度自定义,不像ListView那样item点击事件能快速响应。二、自定义点击事件RecyclerView并没有像ListView那样暴露原创 2020-03-12 20:20:51 · 3786 阅读 · 0 评论 -
理解RecyclerView(二)—不同类型条目item、头尾布局
前言: 世人总是恐惧失败,但失败了也大不从头再来。 一、概述 我们在上一篇文章RecyclerView(一)中对RecyclerView使用详细介绍了,在项目中,我们常遇到一个列表中有不同类型的item,RecyclerView中还有一个很重要的方法getItemViewType(),它的作用是获取item的类型,在onCreateViewHolder()方法中携带过来的viewType是区分item不同类型的参数,核心方法就在这里。原理就是根据viewType来创建不同原创 2019-12-26 18:32:12 · 4073 阅读 · 0 评论 -
理解RecyclerView(一)—初步使用和布局管理器
前言:人在无端微笑时,不是百无聊赖,就是痛苦难当。有些笑容的背后是咬紧牙关的灵魂。 ——看见-柴静一、概述1.1 RecyclerView是什么?自Android5.0之后Google推出了新的列表控件RecyclerView,代替了经典的ListView,RecyclerView是support-v7中的新组件,是一个强大的滑动组件,拥有item的复用回收功能,更加高级和灵活。此组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效原创 2019-12-25 17:56:30 · 2349 阅读 · 2 评论