相关疑难解决方法(0)

当使用Runnable从Handler使用notifyItemChanged时,RecyclerView崩溃[IllegalArgumentException]

RecyclerView用作列表来显示可以下载的歌曲.每个项目都有ProgressBarView.当下载开始时,我使用a Handler来通知每个项目更新ProgressBar以显示歌曲下载进度.

Q1.这是一种正确的方法吗?还是有其他方法可以更恰当地做到这一点.

Q2.当我们adapter.notifyItemChanged(position);用来更新单个项目的内容时,RecyclerView会崩溃.它是从Handler使用中调用的Runnable.但是,日志不会显示我的代码的任何痕迹.为什么?

以下是此问题的日志:

05-06 19:09:45.804: E/AndroidRuntime(32115): FATAL EXCEPTION: main
05-06 19:09:45.804: E/AndroidRuntime(32115): java.lang.IllegalArgumentException: Tmp detached view should be removed from RecyclerView before it can be recycled: ViewHolder{41b7bec0 position=6 id=-1, oldPos=-1, pLpos:-1 update changed tmpDetachedundefined adapter position no parent}
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:3861)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView.removeAnimatingView(RecyclerView.java:779)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView.access$5300(RecyclerView.java:127)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView$ItemAnimatorRestoreListener.onAddFinished(RecyclerView.java:8228)
05-06 19:09:45.804: E/AndroidRuntime(32115):    at android.support.v7.widget.RecyclerView$ItemAnimator.dispatchAddFinished(RecyclerView.java:8573) …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter android-recyclerview

24
推荐指数
7
解决办法
8505
查看次数