【发布时间】:2013-09-03 10:11:13
【问题描述】:
我在 gridview 中处理动画,发现 hasStableIds() 被覆盖并返回 true 以保持项目的稳定 ID。我想知道这如何影响我的网格视图的性能?这是否增加了为每个项目保持稳定 ID 的额外开销?
【问题讨论】:
-
@Chintan Rathod 它没有说明性能差异!
标签: java android gridview baseadapter
我在 gridview 中处理动画,发现 hasStableIds() 被覆盖并返回 true 以保持项目的稳定 ID。我想知道这如何影响我的网格视图的性能?这是否增加了为每个项目保持稳定 ID 的额外开销?
【问题讨论】:
标签: java android gridview baseadapter
简而言之:没有。
GridView 不负责选择 ID,因此这里没有任何开销。 ID 由数据源提供。在hasStableIds() 中返回true 不是请求稳定ID 的一种方式,而是告诉GridView 你提供上述稳定性。
因此,开销(如果有)在于检索数据的代码。 在典型情况下(从数据库中提取),ID 默认是持久的。
那么为什么GridView 关心 ID 的稳定性呢?做一些可能实际上提高性能的有趣技巧:
CHOICE_MODE_SINGLE,则能够返回一组已检查的 ID,从而避免将位置重新映射到 ID。【讨论】: