【问题标题】:Issue in notifying RecyclerView Adapter while is in Scrolling mode处于滚动模式时通知 RecyclerView 适配器的问题
【发布时间】:2020-05-27 14:18:25
【问题描述】:

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

在 Switch Click 上,我正在调用特定的服务和在 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 notifydatasetchanged


    【解决方案1】:

    最后通过以下步骤解决了。

    必须清除以前的数据。

    必须通知适配器。

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

    在调用新的 api 之前做以下事情:

            if (mAlList != null) {
                mAlList.clear()
            }
    
            if(mAdapterList!=null)
            {
                mAdapterList!!.notifyDataSetChanged()
            }
    
            isScrolling=false
            page = 1
            limit = 20
            isLoadMore = false
    

    【讨论】:

      【解决方案2】:
      IndexOutOfBoundsException:
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-26
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多