美文网首页
RecyclerView的性能优化

RecyclerView的性能优化

作者: 无言独上西楼丶月如勾 | 来源:发表于2022-03-01 22:38 被阅读0次

1. 布局优化

减少过度绘制

减少布局层级,简单布局可以使用FameLayout,复杂布局可以自己自定义布局,或者使用ConstraintLayout。

减少xml文件inflate的时间

这里的xml文件不仅包括layout的xml,还包括drawable的xml,xml文件inflate出itemView是通过耗时的IO操作来完成的,尤其是item的复用率低的情况下,随着viewType的增多,这种inflate带来的损耗是相当大的。这种情况下就可以通过代码生成布局的方式去优化。

减少View对象的创建

尽可能的简化itemView,以减少View的创建

2.其他

  • 对于点击事件等等的监听,可以共用同一个监听器,通过position或者其他id之类的东西来进行不同的操作。
  • 对于多个拥有相同Adapter的RecyclerView(比如嵌套RecyclerView)来说,可以通过setRecycledViewPool方法来共享同一个RecycledViewPool。
  • 可以通过setItemViewCacheSize,来增大RecyclerView的缓存,以空间换时间,提高滚动的流畅性。
  • 对于item的高度一致的情况,可以通过设置RecyclerView.setHasFixedSize(true);来避免频繁的requestLayout浪费资源。
  • 尽量不用notifyDataSetChange()来更新数据,应该用notifyItemChanged(int position)notifyItemChanged(int position, @Nullable Object payload)等等更新局部item数据的方法;对于新增或者删除数据可以通过DiffUtil来局部刷新数据。
  • 对于有些数据需要特殊处理的情况,比如日期格式转换、Html.fromHtml()等比较耗时的操作,应当在请求导数据的时候就直接异步处理完成后,再交给RecyclerView来展示。

相关文章

  • 浅谈RecyclerView的性能优化

    RecyclerView的性能优化 在我们谈RecyclerView的性能优化之前,先让我们回顾一下Recycle...

  • DiffUtil和RecyclerView的联合使用

    最近公司在做性能优化的相关工作,在RecyclerView的优化方面,采用了DiffUtil来提升性能。 废话不多...

  • RecyclerView性能优化实战

    在Android中RecyclerView的使用随处可见,它的性能优化程度跟用户体验息息相关。 性能优化实战的例子...

  • 复习

    RecyclerView的缓存机制bitmap 优化性能优化view 的绘制流程浅析LRUCache原理(Andr...

  • RecyclerView性能优化

    概述 RecyclerView有着极高的灵活性,能实现ListView、GridView的所有功能。在日常开发中,...

  • RecyclerView性能优化

    概述 RecyclerView有着极高的灵活性,能实现ListView、GridView的所有功能。在日常开发中,...

  • RecyclerView性能优化

    RecyclerView入门 RecyclerView缓存机制

  • RecyclerView 的性能优化

    之前一篇文章介绍了 ListView 和 RecyclerView 的对比, 这里继续记录下RecyclerVie...

  • RecyclerView的性能优化

    1. 布局优化 减少过度绘制减少布局层级,简单布局可以使用FameLayout,复杂布局可以自己自定义布局,或者使...

  • RecyclerView 优化——滚动性能提升

    前言 在这篇文章中,我们将学习如何优化 Android 中的 RecyclerView 性能。通过这些优化,我们可...

网友评论

      本文标题:RecyclerView的性能优化

      本文链接:https://www.haomeiwen.com/subject/fecjrrtx.html