【问题标题】:Should I set hasStableIds to true every time?我应该每次都将 hasStableIds 设置为 true 吗?
【发布时间】:2021-04-17 12:46:24
【问题描述】:

我有read,将hasStableIds 设置为true,并在notifyDatasetChanged 调用时覆盖getItemId 将提高recyclerView 的性能。但是对于它的兄弟方法(notifyItemInserted 等),他们没有提到任何关于 stableIds 的地方。那么它是否也提高了其他方法的性能?如果我从来没有调用过notifyDatasetChanged,而只是通过其他更具体的调用来通知,我是否应该费心覆盖getItemId

【问题讨论】:

    标签: android android-recyclerview


    【解决方案1】:

    它确实为布局管理器提供了小的优化 - 即它允许内部 RecyclerView.Recycler 识别废料堆中的视图持有者并在布局传递期间重用它们而无需重新绑定。

    但是很难注意到除了 notifyDatasetChanged 被称为废弃的视图之外,没有布局的视图通常在布局阶段结束时被回收。

    一般来说,如果你的物品已经有 int / long IDs,那么使用它并没有什么坏处,但你真的不会因为省略它而损失太多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-06
      • 2011-01-04
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 2017-10-13
      • 2018-12-10
      相关资源
      最近更新 更多