在BaseAdapter中将hasStableIds()设置为false有什么好处?

时间:2013-09-03 10:11:14

标签: java android gridview baseadapter

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

1 个答案:

答案 0 :(得分:2)

简而言之:不。

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

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

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

  • 配置更改的不同(希望更快和/或更强大)处理。
  • 如果设置了CHOICE_MODE_SINGLE,则可以返回已检查ID的数组,从而使您无需将位置重新映射到ID。