1

我在 gridview 中处理动画,发现它 hasStableIds()被覆盖并返回true以保持项目的稳定 ID。我想知道这如何影响我的网格视图的性能?这是否增加了为每个项目保持稳定 ID 的额外开销?

4

1 回答 1

2

简而言之:没有。

GridView不负责选择 ID,因此这里没有任何开销。ID 由数据源提供。返回不是请求true稳定 ID的一种方式,而是告诉您正在提供上述稳定性。hasStableIds()GridView

因此,开销(如果有)在于检索数据的代码。在典型情况下(从数据库中提取),默认情况下 ID 是持久的。

那么为什么要GridView关心 ID 的稳定性呢?做一些可能实际上提高性能的有趣技巧:

  • 对配置更改的不同(希望更快和/或更健壮)处理。
  • CHOICE_MODE_SINGLE如果已设置,则能够返回一组已检查的 ID ,从而避免将位置重新映射到 ID。
于 2014-01-07T23:21:34.363 回答