title: onChildDraw causes the item to flash
body: <p>I'm trying to create a view that can be swiped to dismiss, but it can be undone. The items have a background and a foreground inside a <code>FrameView</code>. I'm overriding <code>onChildDraw</code> in <code>ItemTouchHelper.Callback</code> like this: </p>
  
  <pre><code>@Override
  public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
                          float dX, float dY, int actionState, boolean isCurrentlyActive) {
      if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
          if (viewHolder instanceof ItemViewHolder) {
              ItemViewHolder holder = (ItemViewHolder) viewHolder;
  
              holder.foreground.setTranslationX(dX);
          }
      } else {
          super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
      }
  }
  </code></pre>
  
  <p>Everything works, untill I try to undo the swipe action based on user actions like this:</p>
  
  <pre><code>foreground.animate()
            .translationX(0)
            .setDuration(150);
  </code></pre>
  
  <p>which does bring the actual view back to its position, but if the user tries to swipe that item again, the background is shown again, and for some reason onChildDraw is called with dX parameter greater than the width of the screen. Tapping on the item reveals the background view for a split second, then the foreground can be normally dismissed. How can I fix this?</p>