title: Android RecyclerView IllegalArgumentException: called detach on an already detached child ViewHolder
body: <p>I am getting following error sometime (not every time) while updating recycler adapter.</p>
  
  <p>Note : I am using <a href="https://github.com/martijnvdwoude/recycler-view-merge-adapter" rel="nofollow">RecyclerViewMergeAdapter</a></p>
  
  <p>What I am doing here is : </p>
  
  <p>I have created 3 different type adapter and based on need it is trying to merge 9 adapter in a loop and all these 9 adapter can of of one of the 3 types we have.</p>
  
  <p>All adapters are merged to RecyclerViewMergeAdapter but at some point 
  it is crashing</p>
  
  <p>Also Notice : IF all my sub adapter contains 3 or less items then it works fine but if my sub adapters contains more than 3 to 20 items then it crashes.</p>
  
  <p>Please let me know if someone of have seen this issue and found any solution to this.</p>
  
  <pre>
  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)
  </pre>