掌握 recyclerview 布局(2)

FixedGridLayoutManager的示例中摘出来的,一个二维的Grid Layout,并且支持水平和垂直方向的滑动。

RecyclerView 是因为解决了许多存在于 Listview 上的问题,从而收到大家的欢迎和认可的视图组件。我们都使用过 RecyclerView ,也感受到他给我们开发带来便捷,给用户带来好的体验。在这里我们来关注一下 RecyclerView 底层的实现,了解底层我们就可以更好使用 recyclerview。

recyclerView 也是基于 adapter 的视图集合,那么我们先简单地了解一下 adapter,从字面上理解是适配器的意思。这里有个一个适配模式,想必大家多少有所了解。在 Android 中的 Adapter 是数据与视图的桥梁。是让我们的数据与视图建立一定关系。

其实并不正确,因为这里有一个隐含的 Recycler ,LayoutManager 被赋予一个可访问的 Recycler 实例在需要的地方,当 view 移出屏幕时就会被 Recycler 回收,同样 LayoutManager 也会从 Recycler 获取视图来添加到屏幕上。

Recyler 阻断了 LayoutManger 与 Adapter 的联系,如果 LayoutMaganer 尝试自己联系视图,就发生错误。当 LayoutManager 请求一个新的视图,只需要简单,

其实我们手动滑动一下,几十条


看一看 recycler 内部结构,是如何回收以及再利用的。Recycler 有两级缓存系统,分别是废料堆和回收池,废料堆是一个轻量级的可回收的集合,这里的 View 可以被直接返回到 LayoutManager 而不需要经过Adapter。



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章分三个部分,简单跟大家讲一下 RecyclerView 的常用方法与奇葩用法;工作原理与ListView比...
    LucasAdam阅读 4,426评论 0 27
  • RecyclerView 概要 RecyclerView是Android 5.0开始提供一个可回收容器,它比 Li...
    rexyren阅读 5,667评论 10 27
  • 原文连接 Building a RecyclerView LayoutManager 创建一个RecyclerVi...
    zzh12138阅读 633评论 0 2
  • 夏天的故事写到尾声了 墙壁上的灰迹还没被人抹去 雨最后的咆哮起来 有一些愤怒宣泄而出 终究变成徒劳 就不得不示弱了...
    亘木同学阅读 193评论 0 2
  • 生存与大义,民族与个人,国家与团体,黑与被黑,对与错,真与假,自有公论,此时不顾真相何为,只想做个愤青: 中国历史...
    众石也阅读 268评论 0 1