@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) { View view = viewHolder.itemView; c.save(); mSwipePaint.setAlpha((int) (255 * view.getAlpha())); mDeleteIcon.setAlpha((int) (255 * view.getAlpha())); int sw = mDeleteIcon.getIntrinsicWidth(); int sh = mDeleteIcon.getIntrinsicHeight(); int cx; int cy = (view.getTop() + view.getBottom()) / 2; if (dX > 0.f) { mTempRect.set(view.getLeft(), view.getTop(), (int) dX, view.getBottom()); cx = view.getLeft() + mIconPadding + sw / 2; } else { mTempRect.set(view.getRight() + (int) dX, view.getTop(), view.getRight(), view.getBottom()); cx = view.getRight() - mIconPadding - sw / 2; } mDeleteIcon.setBounds(cx - sw / 2, cy - sh / 2, cx + sw / 2, cy + sh / 2); c.drawRect(mTempRect, mSwipePaint); c.clipRect(mTempRect); mDeleteIcon.draw(c); c.restore(); } super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); }
@Override public void onChildDraw(@NonNull Canvas c, @NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { if (Math.abs(dX) <= getSlideLimitation(viewHolder)) { viewHolder.itemView.scrollTo(-(int) dX, 0); } } else { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } }
@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 QueueListAdapter.QueueItemViewHolder) { QueueListAdapter.QueueItemViewHolder queueHolder = (QueueListAdapter.QueueItemViewHolder) viewHolder; ViewCompat.setTranslationX(queueHolder.mContainer, dX); } } else { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } }
/** * @see #onChildDraw(Canvas, RecyclerView, ViewHolder, float, float, int, boolean) */ protected void onChildDraw(Canvas c, RecyclerView recyclerView, EpoxyViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); }