Learning By Doing
一个Demo掌握RecyclerView基本用法
前言
由于RecyclerView已经出来很久了,关于RecyclerView的文章网上也有很多,所以这篇文章只是作为一个基本用法的总结 + 常见功能的参考链接,可以理解为一篇查阅/总结的文章。
首先总结一下最基本的用法。
RecyclerView使用
使用RecyclerView的步骤
- 添加RecyclerView依赖库(gradle build file)
- 定义Model类
- 在XML添加RecyclerView
- 创建XML布局文件,用于展示item
- 创建RecyclerView.Adapter和ViewHolder
- 绑定adapter和数据到RecyclerView
添加RecyclerView依赖库
在build.gradle中加入依赖:
1 | implementation'com.android.support:recyclerview-v7:27.0.2' |
定义Model类
1 | /** |
在activity添加RecyclerView
我们新建一个layout文件:
1 |
|
创建XML布局文件,用于展示item
再创建一个layout文件:
1 |
|
创建adapter和viewholder
创建ContactsAdapter类:
onCreateViewHolder:一般用于初始化布局文件和viewholder
onBindViewHolder:一般用于初始化item布局中的控件
1 | /** |
在activity绑定adapter和data
在activity的onCreate()中加入以下代码:
1 | RecyclerView rvContacts = findViewById(R.id.rvContacts); |
compile & run project
运行程序,看一下我们的成果:
可以看到,根据Contact.createContactsList(20)方法,创建了20个item,并且成功的按照item的布局展示出来,这就是RecylerView最基本的用法了。over~
步骤其实特别简单:
添加依赖,XML加入RecyclerView,编写item布局,编写Adapter和ViewHolder,创建RecyclerView,绑定Adapter
最后别忘了 运行程序
over~
第三方库
由于RecyclerView还有许多有用的特性,我们可以利用它来做很多有趣的事情,所以我也收集了一些资料,供大家参考。
让item在滚动后居中显示的库: Snap to Center Effect
给Recyclerview加上各种动画:recyclerview-animators
万能adapter:BaseRecyclerViewAdapterHelper
tablayout:RecyclerTabLayout
文章/博客
中文:
英文:
基本上常见的用法和原理的解析都在这里面了,有特定需求的可以上Github找一下第三方库,看一下里面的源码,了解原理之后,其实自己也能实现各种炫酷的效果~
20181010更新
评论里有朋友问怎么添加分割线,其实Android官方已经提供了默认实现。只需要一行代码即可:
1 | recyclerView.addItemDecoration(new DividerItemDecoration(context,DividerItemDecoration.VERTICAL)); |
效果如图:
如果对默认的效果不满意,也可以使用其他的实现方式:
自定义Drawable文件
1 | recyclerView.addItemDecoration(new RecycleViewDivider( |
OR
自定义分割线高度和颜色
1 | recyclerView.addItemDecoration(new RecycleViewDivider( |