java.lang.IllegalArgumentException

If you like a tip written by other Samebug users, mark is as helpful! Marks help our algorithm provide you better solutions and also help other users.
tip

If you're using notifyItemChanged(position) try changing it for notifyDataSetChanged(). This could be a bug with notifyItemChanged. Try dispatching all events as soon as they happen as well, since RecyclerView already bundles the updates by default.

tip

This issue was solved in 2.2.6. If updating doesn't solve, try using notifyItemRangeChanged(1, mDatas.size()) instead of notifyItemRangeChanged(0, mDatas.size()).

tip

This happens when you have android:animateLayoutChanges set to true in your XML file and you call notifyDataSetChanged(). To fix it, you have to set android:animateLayoutChanges to false.

tip

Also, you should dispatch events as soon as they happen, ReciclerView already bundles all updates.

tip

java.lang.IllegalArgumentException indicate that a method has been passed an illegal or inappropriate argument.we were not ending their animations.When animation ends, it would recycle it again causing the view to show up in recycle pool twice.

tip

In your xml just avoid using android:animateLayoutChanges with RecyclerViews.and also if you have set android:focusableInTouchMode="true" in your RecycleView you have to set false.

You have a different solution? A short tip here would help you and many other users who saw this issue last week.

  • Possible bug in GridLayoutManager?
    via Stack Overflow by Kent Hawkings
    ,
  • GitHub comment 75#222593322
    via GitHub by gao746700783
    ,
  • GitHub comment 36#253971663
    via GitHub by SaltedFish999
    ,
    • java.lang.IllegalArgumentException: called detach on an already detached child ViewHolder{7c7ecfb position=2 id=-1, oldPos=-1, pLpos:-1 scrap tmpDetached no parent} at android.support.v7.widget.RecyclerView$4.detachViewFromParent(RecyclerView.java:605) at android.support.v7.widget.ChildHelper.detachViewFromParent(ChildHelper.java:284) at android.support.v7.widget.RecyclerView$LayoutManager.detachViewInternal(RecyclerView.java:6473) at android.support.v7.widget.RecyclerView$LayoutManager.detachViewAt(RecyclerView.java:6466) at android.support.v7.widget.RecyclerView$LayoutManager.scrapOrRecycleView(RecyclerView.java:6835) at android.support.v7.widget.RecyclerView$LayoutManager.detachAndScrapAttachedViews(RecyclerView.java:6818) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:532) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2847) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3145) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1034) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:744) at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1180) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:757) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) at android.widget.FrameLayout.onLayout(FrameLayout.java:273) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586) at android.widget.LinearLayout.onLayout(LinearLayout.java:1495) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) at android.widget.FrameLayout.onLayout(FrameLayout.java:273) at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678) at android.view.View.layout(View.java:16636) at android.view.ViewGroup.layout(ViewGroup.java:5437) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:606) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 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)

    Users with the same issue

    Hiren Amaliyar
    8 times, last one,
    rafael
    1 times, last one,
    Unknown visitor1 times, last one,
    Unknown visitor1 times, last one,
    Unknown visitor1 times, last one,
    4 more bugmates