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

标签 java android gridview baseadapter

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

最佳答案

简而言之:没有。

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

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

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

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

关于java - 在 BaseAdapter 中将 hasStableIds() 设置为 false 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589587/

相关文章:

qt - QML GridView 隐藏一个单元格

asp.net - 将 GridViewRowCollection 添加到 asp.net GridView

android - 错误 : Final local variable score cannot be assigned, 因为它是在封闭类型中定义的?

如果文件名更改,Android Studio + Gradle 旧 apk 正在上传到设备

java - 与内部类意识的混淆

java - session.list 上的 HSQLException。错误: Unexpected token "Entity name"

android - java.lang.IllegalArgumentException : Parameter specified as non-null is null for Kotlin and WebView

c# - 在 asp.net GridView 中更新行时出错

java - 如何在 spring boot 中创建一个 Tcp 连接来接受连接?

Java 接口(interface)泛型,返回类型取决于参数泛型