我正在尝试在聊天应用程序中实现setHasStableId(true)。当我通过以下方式在RecyclerView适配器中重写getItemId()方法时,
override fun getItemId(position: Int): Long = filterItems[position].hashCode().toLong()
该应用程序告诉我,同一项目ID被多次返回。列表中没有重复的项目,对于用户来说一切正常,但出现此错误。
两个不同的ViewHolder具有相同的稳定ID。适配器中的稳定ID必须唯一,并且不应更改。ViewHolder 1:ViewHolder {cccdd18 position = 2 id = 43916,oldPos = -1,pLpos:-1}视图持有者2:ViewHolder {534b732 position = 1 id = 43916,oldPos = -1,pLpos:-1}
注意:这是一个具有3个视口的适配器
非常感谢您的帮助!
请确保您的视图持有者具有不同的ID。由于错误告诉您所有视图持有者都具有相同的ID id=43916
,即所有3个ViewHolders
都具有相同的ID。
请仔细检查您的视图持有者ID。