处于滚动模式时通知RecyclerView适配器的问题

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

我在Recyclerview中有项目清单。应用程序中有一个“切换”按钮,用于特定类型的数据。

在单击开关时,我正在调用特定服务,并且正在recyclerview中设置新数据。

以上操作正常,但是当我在滚动recyclerview之后执行相同操作时,或者当我的recyclerview处于滚动模式时,出现以下错误:

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{9dea1e position=24 id=-1, oldPos=-1, pLpos:-1 no parent} androidx.recyclerview.widget.RecyclerView
android android-recyclerview recycler-adapter notifydatasetchanged
2个回答
0
投票

最后通过以下步骤解决。

必须清除以前的数据。

必须通知适配器。

如果使用分页,则必须将必要的值存储为默认值。

在进行新的api调用之前,请完成以下操作:

        if (mAlList != null) {
            mAlList.clear()
        }

        if(mAdapterList!=null)
        {
            mAdapterList!!.notifyDataSetChanged()
        }

        isScrolling=false
        page = 1
        limit = 20
        isLoadMore = false

-1
投票
IndexOutOfBoundsException:

为此,您需要使用接口添加onClickListener,不要在onBindViewHolder中使用它,因为它将创建类似这样的异常。谢谢

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