美文网首页
recyclerview

recyclerview

作者: jamin_ | 来源:发表于2020-03-08 12:33 被阅读0次

    1、避免创建过多的对象(如点击事件)

    2、数据处理与视图绑定分离(onBindViewHolder 应该只是将数据set到视图中,而不应进行业务的处理)

    3、数据优化(分页、DiffUtil<数据对比>局部刷新)
    4、局部更新(知道哪些position的局部刷新)
    notifyItemChanged(int position)
    notifyItemInserted(int position)
    notifyItemRemoved(int position)
    notifyItemMoved(int fromPosition, int toPosition)
    notifyItemRangeChanged(int positionStart, int itemCount)
    notifyItemRangeInserted(int positionStart, int itemCount)
    notifyItemRangeRemoved(int positionStart, int itemCount)
    如果必须用 notifyDataSetChanged(),那么最好设置 mAdapter.setHasStableIds(true)

    优化

    https://zhuanlan.zhihu.com/p/49338922
    RecyclerView性能优化 (优先看这个)

    https://blog.csdn.net/smileiam/article/details/88396546
    RecyclerView性能优化及高级使用

    缓存机制
    https://juejin.im/post/5a5d3d9b518825734216e1e8
    https://juejin.im/post/5b79a0b851882542b13d204b

    onbindview 不做计算等耗时任务
    增加删除用局部更新 DiffUtil
    闪烁处理
    数据优化(分页 对拉取的远端数据进行缓存,提高二次加载速度)
    RecyclerView缓存机制
    加大RecyclerView的缓存
    设置高度固定
    RecyclerView数据预取

    一些技巧

    RecyclerView item局部刷新优化,只刷新item中的某个控件

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

    RecyclerView 数据刷新的几种方式 局部刷新 notify MD

    https://www.cnblogs.com/baiqiantao/p/6956425.html

    处理刷新闪烁
    调用notifyDataSetChange时,适配器不知道整个数据集中的那些内容以及存在,再重新匹配ViewHolder时会花生闪烁。
    设置adapter.setHasStableIds(true),并重写getItemId()来给每个Item一个唯一的ID

    RecyclerView 配合 DiffUtil,好用到飞起

    https://juejin.im/post/5995ba616fb9a024747ed8e8

    关于RecyclerView你知道的不知道的都在这了(上)

    https://www.cnblogs.com/dasusu/p/9159904.html
    这个赞一下!

    RecyclerView 必知必会

    https://zhuanlan.zhihu.com/p/24807254

    image.png

    相关文章

      网友评论

          本文标题:recyclerview

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