RecyclerView的介绍和使用

一、目录

RecyclerView的介绍和使用_第1张图片

二、介绍和基本使用

RecyclerView是Android 5.0提出的新UI控件,位于support-v7包中,向下兼容到android 3.0版本,在很多列表场景中能替代ListView和GridView。
基本使用分三步:

//第一步
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);

ArrayList<Post> data = new ArrayList<>();
data.add(new Post("Marshmallow", "http://i.imgur.com/mVpDmzc.jpg", "Android 66666666666666"));
data.add(new Post("Lollipop", "http://i.imgur.com/kyVfpYh.png", "Android 55555555555555"));

MyAdapter adapter = new MyAdapter(this, data);
//第二步
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//第三步
recyclerView.setAdapter(adapter);

详情参见:介绍和基本使用

三、辅助类

RecyclerView的强大和可扩展性离不开其众多辅助类。其中Adapter和ViewHolder以及LayoutManager是展示列表所必须的,其他辅助类配合能完成更多复杂炫酷的需求。

辅助类 简介 详细介绍 优秀开源库链接
Adapter和ViewHolder RecyclerView本身不创建视图,视图的创建和显示由ViewHolder负责。ViewHolder的创建和数据绑定由Adapter负责 Adapter和ViewHolder简介

RecyclerView的ViewHolder和Adapter的封装
BaseRecyclerViewAdapterHelper
LayoutManager LayoutManager负责RecyclerView的布局,其中包含了Item View的获取与回收 LayoutManager的基本使用

自定义LayoutManager
LayoutManager开源库合集

LayoutManagerGroup
ItemDecoration ItemView的装饰器 深入解析 RecyclerView.ItemDecoration类(含实例讲解) RecyclerView-FlexibleDivider

TimeLine
ItemAnimator ItemView添加、移除、更新的动画效果 RecyclerView的item动画效果 recyclerview-animators
ItemTouchHelper ItemView拖拽 RecyclerView实现条目Item拖拽排序与滑动删除 Android-ItemTouchHelper-Demo
SnapHelper ItemView的对齐规则 SnapHelper详解

SnapHelper介绍
RecyclerViewSnap
DiffUtil 配合RecyclerView 使用,通过比对新、旧两个数据集的差异,生成旧数据到新数据的最小变动,然后对有变动的数据项,进行局部刷新 详解DiffUtil

DiffUtil介绍

四、源码分析

RecyclerView 源码解析
RecyclerView 整体设计
RecyclerView剖析

五、功能拓展和特效

  1. RecyclerView嵌套实现多级目录
  2. RecyclerView添加Header和Footer
  3. Item侧滑删除
  4. 下拉刷新、上拉加载的优秀开源库XRecyclerView、SmartRefreshLayout、官方的SwipeRefreshLayout

六、常见问题和bug

  1. Android 6.0 解决recyclerview 在 scrollview 中不能全部显示
  2. RecyclerView滑动到指定位置

你可能感兴趣的:(RecyclerView,布局,控件混合,源码解析)