我在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/