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

最佳答案

简而言之:不。

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

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

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


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

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

10-09 02:09