【问题标题】:What is the advantage of setting hasStableIds() to false in BaseAdapter?在 BaseAdapter 中将 hasStableIds() 设置为 false 有什么好处?
【发布时间】:2013-09-03 10:11:13
【问题描述】:

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

【问题讨论】:

标签: java android gridview baseadapter


【解决方案1】:

简而言之:没有。

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

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

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

  • 以不同的方式(希望更快和/或更稳健)处理配置更改。
  • 如果设置了CHOICE_MODE_SINGLE,则能够返回一组已检查的 ID,从而避免将位置重新映射到 ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2020-07-16
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多