带有Scrapped或附加视图的GapWorker可能无法回收.isScrap:false isAttached:true

Rep*_*tor 6 android android-viewholder recycler-adapter android-recyclerview

当我滚动我的recyclerview太快时,我得到了以下崩溃

 java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true
                                                                 at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:5659)
                                                                 at android.support.v7.widget.RecyclerView$Recycler.recycleView(RecyclerView.java:5603)
                                                                 at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:277)
                                                                 at android.support.v7.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:324)
                                                                 at android.support.v7.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:337)
                                                                 at android.support.v7.widget.GapWorker.prefetch(GapWorker.java:344)
                                                                 at android.support.v7.widget.GapWorker.run(GapWorker.java:370)
                                                                 at android.os.Handler.handleCallback(Handler.java:739)
                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我的所有努力,并在stackoverflow上得到类似的问题,但没有一个像下面的链接一样有用,

链接1

链接2

链接3

链接4

链接5

我不知道它发生在哪里的崩溃.任何帮助将不胜感激.我既不使用"android:animateLayoutChanges ="true"

基本上我曾尝试合并这两个不同的GitHub项目,

RV-适配器状态

RV-适配器不已

我的文件链接如下,来自pastbin,

行布局

回收者代码

我的适配器从两个不同的rv适配器合并

主适配器

小智 0

就我而言,问题是由于该方法的实现不正确public long getItemId(int position)(从方法覆盖RecyclerView.Adapter)。

旧代码将为同一项目获得两个不同的 id(在我的例子中是页脚项目),修复实现后问题就消失了。