Inconsistency detected.Invalid item position android.support.v7.widget.RecyclerView

Inconsistency detected.Invalid item position android.support.v7.widget.RecyclerView,第1张

   java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 6(offset:6).state:9
	at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java)
	at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java)
	at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java)
	at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java)
	at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java)
	at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java)
	at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java)
	at android.support.v7.widget.RecyclerView.scrollByInternal(RecyclerView.java)
	at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java)
	at android.view.View.dispatchTouchEvent(View.java:7706)

1 原因: 下拉刷新的时候要清空数据,从第一页开始请求数据。也就是说list.clear() *** 作后,紧接着进行了 *** 作下拉刷新,数据还没返回的时候,又下拉刷新了一次。所以导致报上面的错误。

2 解决方法: 在list.clear() 后 就进行adapter.notifyDataSetChange(),在数据没返回的时候,你 *** 作下拉刷新就没问题了。然后在list.addAll() 后,进行adapter.notifyDataSetChange()就可以。

还有一个办法就是 *** 作下拉刷新后,等待数据返回了才能进行下一次的下拉刷新。定义一个boolean 变量。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存