Android面试系列文章2018之Android部分之RecyclerView篇

1.RecyclerView是什么?

  从Android 5.0开始,谷歌公司推出了RecylerView控件,当看到RecylerView这个新控件的时候,大部分人会首先发出一个疑问,recylerview是什么?为什么会有recylerview也就是说recylerview的优点是什么?recylerview怎么用?等等,下面我们将深入解析recylerview。

  RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字Recyclerview即回收view也可以看出。看到这也许有人会问,不是已经有ListView了吗,为什么还要RecyclerView呢?这就牵扯到第二个问题了。

RecyclerView的优点是:

根据官方的介绍RecyclerView是ListView的升级版,既然如此那RecyclerView必然有它的优点,现就RecylerView相对于ListView的优点罗列如下:

  • RecyclerView封装了viewholder的回收复用,也就是说RecyclerView标准化了ViewHolder,编写Adapter面向的是ViewHolder而不再是View了,复用的逻辑被封装了,写起来更加简单。
  • 提供了一种插拔式的体验,高度的解耦,异常的灵活,针对一个Item的显示RecyclerView专门抽取出了相应的类,来控制Item的显示,使其的扩展性非常强。例如:你想控制横向或者纵向滑动列表效果可以通过LinearLayoutManager这个类来进行控制(与GridView效果对应的是GridLayoutManager,与瀑布流对应的还StaggeredGridLayoutManager等),也就是说RecyclerView不再拘泥于ListView的线性展示方式,它也可以实现GridView的效果等多种效果。你想控制Item的分隔线,可以通过继承RecyclerView的ItemDecoration这个类,然后针对自己的业务需求去抒写代码。
  • 可以控制Item增删的动画,可以通过ItemAnimator这个类进行控制,当然针对增删的动画,RecyclerView有其自己默认的实现。

2.RecyclerView的布局管理器&适配器

2.1 RecyclerView的布局管理器

  RecyclerView的布局管理器是什么东东,我们知道ListView它只能让Item呈现线性排列,并不能一排好几个,或者参差不齐交错排列,因此RecyclerView可以做到,怎么做的呢?这跟RecyclerView的布局管理器有关,RecyclerView的布局管理器分为三种,第一种就是和ListView一样能让Item呈线性排列的线性布局管理器,而且还可以选择垂直方向或者水平方向。第二种就是网格布局管理器,这种是比较常见和常用的布局管理器,把数据整整齐齐的想网格一样的把数据显示出来。第三种就是瀑布流布局管理器,根据名字就可以知道它的作用就是让Item像瀑布一样排列。详细介绍点击以下传送门:

  • 线性布局管理器(LinearLayoutManager)

  • 网格布局管理器(GridLayoutManager)

  • 瀑布流布局管理器(StaggeredLayouManager)

  • https://www.jianshu.com/p/626a082bf569

  • https://www.jianshu.com/p/12ec590f6c76

2.2 RecyclerView的适配器

https://blog.csdn.net/Mr_QiuL/article/details/52213547

3.RecyclerView源码分析

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0307/4032.html

4.RecyclerView&ListView区别

https://www.jianshu.com/p/f592f3715ae2

更多相关文章

  1. Android设备管理器漏洞分析!
  2. Android怎么在控制台输出语句
  3. 如何在横屏控制软键盘显示一部分
  4. Android(安卓)4高级编程(第三版)Android简介
  5. Android控制后台音乐播放器暂停,播放
  6. android browser 的几个小feature (二) 左右晃动控制网页前进后
  7. Android布局管理器
  8. Android:音乐特效控制
  9. Android中自定义SeekBar来控制音量,并与系统音量键的操作保持同步

随机推荐

  1. android 如何中断一个子线程
  2. Android(安卓)高级编程--Fragment理解与
  3. Android(安卓)Webview 使用Html播放音频
  4. Java序列化反序列化、Serializable、Parc
  5. WhaleCTF平台Android部分题解
  6. Android(安卓)ApiDemos示例解析(45):App->
  7. Android(安卓)Studio断点调试三(深入研究)
  8. 【Android】入门案例(一)——简单登录
  9. 了解Android(安卓)Studio jniLibs目录
  10. 详解Android提交数据到服务器的两种方式