4

が速すぎて、私は私が私のあらゆる努力を試してみましたが、stackoverflowの上で同様の質問を取得し、それらのどれもが、リンクを次のように有用ではなかったしていた以下のクラッシュスクラップまたはアタッチされたビューのGapWorkerはリサイクルできません。 isScrap:偽isAttached:私は私の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) 

を取得しています、

Link 1

Link 2

Link 3

Link 4

Link 5

私はそれが発生しているところから、このクラッシュの知識がありません。どんな助けでも大歓迎です。私はどちらも使用して、 "アンドロイド:animateLayoutChangesは=" 午前pastbinから次のように「真

基本的に私は、これら2つの異なるGitHubのプロジェクトをマージしようとした、

マイファイルへのリンク

rv-adapter-states

rv-adapter-endlessがあります、

Row Layout

Code of recyclerview

My Adapter merge from two diffrent adapter of rv

Main adapter

+0

あなたのrecyclerviewとアダプタコード –

+0

@Divyeshを投稿してください。私はコード – TheReprator

+0

を追加しました。私は同じ問題を抱えています。あなたは解決策を見つけることができましたか? –

答えて

0

私の場合は問題は(RecyclerView.Adapterメソッドからオーバーライド)この方法public long getItemId(int position)の実装不正確でした。

古いコードでは、問題が発生した実装を修正した後、同じアイテム(私の場合はフッターアイテム)に対して2つの異なるIDを取得します。

0

layoutManager.setItemPrefetchEnabled(false);を試しましたか?それは私のために働いた。

0

私は同じ問題を抱えていましたが、なぜ起こっているのかわかりません。

私はそれがrecyclerviewにandroid:animateLayoutChangesを取り除く解決し、私が追加したrecyclerviewアニメーション化するために:あなたはそれをアニメーション化したい場合の方法public long getItemId(int position)を追加し、setHasStableIds(true)を設定するには、アカウントを取る recyclerView.setItemAnimator(new DefaultItemAnimator());

を。

関連する問題