关于RecyclerView

前言

这篇毫无头绪,供个人查阅。

毫无头绪的开始了

  • 综合介绍

RecyclerView 必知必会
抽丝剥茧RecyclerView - 化整为零

RecyclerView的四大组成是:

Adapter:为Item提供数据。
Layout Manager:Item的布局。
Item Animator:添加、删除Item动画。
Item Decoration:Item之间的Divider。

  • (1)关于SnapHelper:

Android中使用RecyclerView + SnapHelper实现类似ViewPager效果
让你明明白白的使用RecyclerView——SnapHelper详解
Android SnapHelper扒皮分析
SnapHelper硬核讲解
用RecyclerView做一个小清新的Gallery效果,之前项目中也做过卡片滑动,过程中缩放的功能。
https://github.com/BCsl/GalleryLayoutManager,卡片滑动,过程中缩放的功能。

  • (2)关于ItemDecoration

getItemOffsets
为了给绘制 Decoration 腾出绘制区域,RecyclerView 通过调用 ItemDecoration 的 getItemOffsets,获取需要的绘制区域尺寸,保存到 RecyclerView.LayoutParams 的 mDecorInsets 变量里。
RecyclerView measure 和 layout 过程中会考虑到 mDecorInsets,也就是说除了 Padding,Margin 之外,RecyclerView 还增加了 mDecorInsets 进行布局。mDecorInsets 的作用Margin 比较相似。

onDraw,onDrawOver
onDraw 和 onDrawOver 都是绘制 Decoration,区别在于,onDraw 在 RecyclerView 绘制 Children 之前,onDrawOver 在 RecyclerView 绘制 Children 之后。

Decoration是紧贴item的(比margin靠内,属于其padding范围)

Android开发之分组列表悬浮顶部栏(吸顶效果)--做了offset的示意图,很直观。
ItemDecoration--比较简单,注意的四点:0、系统提供的默认的decoration;1、就是addItemDecoration方法,add会重复添加,自己做项目也遇到过;2、添加的decoration的点击问题;3、关于ViewGroup的onDraw()方法的调用问题
ItemDecoration实现方式,并带touch点击事件--点击事件的一个思路吧
自定义ItemDecoration这个问题你真的注意到了吗
RecyclerView系列之二ItemDecoration--几个例子
解决RecyclerView执行动画后item边距错误的问题

  • (3)关于滚动

RecyclerView的滚动事件研究

滚到到顶部:recyclerview的scrollToPosition(0)

  • (4)关于点击事件

三种方式实现RecyclerView的Item点击事件

其中,recyclerView.findChildViewUnder(e.getX(), e.getY())根据点击的坐标获取处在屏幕中的ItemVIew。

RecycleView 的findChildViewUnder()方法简单介绍

  • (5)关于LayoutManager

掌握自定义LayoutManager(一) 系列开篇 常见误区、问题、注意事项,常用API

  • (6)ViewPager2

学不动也要学!深入了解ViewPager2,实现(1)中卡片布局
官方 Viewpager 升级版 - ViewPager2 实战

推荐阅读更多精彩内容