我可以看到设置适配器。
setHasStableIds(真);
将改进RecyclerView性能,因为它提高了许多性能,为什么在RecyclerView
中没有默认启用,在设置setHasStableIds(true)
时是否有限制?
发布于 2019-11-22 00:32:15
它不是默认的原因是因为支持适配器的数据可能没有稳定的Id,而RecyclerView不知道这一点。
是的,使用setHasStableIds(true)
有一个限制--您的数据必须有稳定的Id
您要么需要重写getItemId(int位置)才能返回表示每个数据项的唯一Id,如果您想不出更好的方法,只需返回HashCode。
或
如果使用类似于CursorAdapter
的内容,则自动具有稳定的Id,因为它使用的是数据库表_id列。
发布于 2019-11-21 06:04:53
原因是,当我们将只是显示数据在回收-查看的情况下,不需要每个项目的唯一id和动画所需。所以它是,默认为假。
但是,当我们要在数据集中执行一些操作并更新回收器视图时--在这种情况下,它需要特定项目的唯一id和刷新动画(闪烁) it need.so,我们将其设置为true。
https://stackoverflow.com/questions/58968050
复制相似问题