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剖析
- RecyclerView嵌套实现多级目录
- RecyclerView添加Header和Footer
- Item侧滑删除
- 下拉刷新、上拉加载的优秀开源库XRecyclerView、SmartRefreshLayout、官方的
SwipeRefreshLayout