Android getItemId()在recyclerview中多次返回相同的ID

问题描述 投票:0回答:1

我正在尝试在聊天应用程序中实现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个视口的适配器

非常感谢您的帮助!

android kotlin android-recyclerview adapter
1个回答
0
投票

请确保您的视图持有者具有不同的ID。由于错误告诉您所有视图持有者都具有相同的ID id=43916,即所有3个ViewHolders都具有相同的ID。

请仔细检查您的视图持有者ID。

© www.soinside.com 2019 - 2024. All rights reserved.