Inconsistency detected.Invalid item position android.support.v7.widget.RecyclerView
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 6(offset:6).state:9at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java)at android
·
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 变量。
更多推荐
所有评论(0)