Android setHassTableId(true)为什么在RecyclerView中默认不启用它?
我可以看到设置适配器 setHasStableIds(true)Android setHassTableId(true)为什么在RecyclerView中默认不启用它?,android,performance,android-recyclerview,Android,Performance,Android Recyclerview,我可以看到设置适配器 setHasStableIds(true) 将提高RecyclerView性能,因为它提高了很多性能,为什么在RecyclerView中没有默认启用它,在设置setHassTableId(true)时是否有任何限制?原因是当我们只在recycler视图中显示数据时,不需要每个项目的唯一id,也不需要动画。因此它的默认值为false 但是,当我们要在数据集中执行某些操作并更新回收器视图时,这种情况下它需要特定项目的唯一id和刷新动画(闪烁)它需要。因此我们将其设置为true之
将提高RecyclerView性能,因为它提高了很多性能,为什么在
RecyclerView
中没有默认启用它,在设置setHassTableId(true)时是否有任何限制
?原因是当我们只在recycler视图中显示数据时,不需要每个项目的唯一id,也不需要动画。因此它的默认值为false
但是,当我们要在数据集中执行某些操作并更新回收器视图时,这种情况下它需要特定项目的唯一id和刷新动画(闪烁)它需要。因此我们将其设置为true之所以不是默认值,是因为支持适配器的数据可能没有稳定的Id,而RecyclerView不知道这一点 是的,使用setHassTableId(true)有一个限制-您的数据必须具有稳定的Id 您需要重写getItemId(int位置)以返回表示每个数据项的唯一Id,如果想不出更好的方法,只需返回HashCode即可 或 如果使用类似于
CursorAdapter
的东西,则此自动程序具有稳定的Id,因为它使用数据库表Id列