关于RecyclerView

1、RecyclerView的缓存
在RecyclerView中,有两种缓存:Scrap和Recycle。
Scrap缓存是指里面缓存的View是接下来需要用到的,即里面的绑定的数据无需更改,可以直接拿来用的;而Recycle的缓存的View为里面的数据需要重新绑定,即需要通过Adapter重新绑定数据。
当我们去获取一个新的View时,RecyclerView的逻辑流程是:
a:首先去检查Scrap缓存是否有对应的position的View,如果有,则直接拿出来可以直接用,不用去重新绑定数据;
b:如果没有,则从Recycle缓存中取,回调Adapter的onBindViewHolder方法,再将绑定好新数据的View返回。
c:如果Recycle缓存为空,初始化View,并调用onCreateViewHolder方法,绑定数据。
2、滚动方法:
scrollBy(x, y)这个方法是自己去控制移动的距离,单位是像素
scrollToPosition(position)这个方法的作用是定位到指定项,该项显示出来不一定位于组件顶部
smoothScrollToPosition(position)和scrollToPosition(position)效果基本相似,前者是平滑到你想显示的项
((LinearLayoutManager)recyclerView.getLayoutManager()).scrollToPositionWithOffset(position,0)
这种方式是定位到指定项如果该项可以置顶就将其置顶显示。
3、

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

推荐阅读更多精彩内容

  • 简介: 提供一个让有限的窗口变成一个大数据集的灵活视图。 术语表: Adapter:RecyclerView的子类...
    酷泡泡阅读 5,218评论 0 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,560评论 25 708
  • 知识框架(脑图) 技术出现的背景 ListView没有强制要求ViewHolder ListView不能快速实现线...
    Lshare_Blog阅读 5,232评论 8 39
  • 《展望曲阜——思想人生》刘欣雨游学感悟分享:这几天虽然也是在学习,但是学的很开心。认识了很多姐姐,还有志峰老师。我...
    段美丽阅读 523评论 0 0
  • 我失业了,在哪间小饭店上班才9天,老板就冷冷的对我说,我看你也无心在这里工作,老是说些让我们不开心的话有什么意思?...
    和风轻和阅读 313评论 0 0