Skip to content

Instantly share code, notes, and snippets.

@JaldeepAsodariya
Created January 17, 2020 10:18
Show Gist options
  • Save JaldeepAsodariya/d553ecb75791f83232d32e56458dbc79 to your computer and use it in GitHub Desktop.
Save JaldeepAsodariya/d553ecb75791f83232d32e56458dbc79 to your computer and use it in GitHub Desktop.
Recyclerview swipe example
...
private void initSwipe() {
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();
if (direction == ItemTouchHelper.RIGHT) {
mRcyclrAdapter.removeItem(position);
}
}
@Override
public void onChildDraw(@NonNull Canvas canvas, @NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
super.onChildDraw(canvas, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
View itemView = viewHolder.itemView;
Paint paint = new Paint();
Bitmap iconBitmap;
if (dX > 0) {
iconBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_delete);
paint.setColor(ContextCompat.getColor(getContext(), R.color.red));
canvas.drawRect(itemView.getLeft(), itemView.getTop(),
itemView.getLeft() + dX, itemView.getBottom(), paint);
// Set the image icon for Right side swipe
canvas.drawBitmap(iconBitmap,
itemView.getLeft() + convertDpToPx(16),
itemView.getTop() + (itemView.getBottom() - itemView.getTop() - iconBitmap.getHeight()) / 2,
paint);
}
float ALPHA_FULL = 1.0f;
// Fade out the view as it is swiped out of the parent's bounds
float alpha = ALPHA_FULL - Math.abs(dX) / viewHolder.itemView.getWidth();
viewHolder.itemView.setAlpha(alpha);
viewHolder.itemView.setTranslationX(dX);
super.onChildDraw(canvas, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(recyclrvw);
}
private int convertDpToPx(int dp) {
return Math.round(dp * (getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
}
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment