I need to change the background color of the row item based on the direction of swipe, if swiped right then change the color to Green, if swiped left then change the color to Red.
but I'm finding it difficult to get the direction of swipe.
here is my code.
public class SimpleItemTouchHelperCallback extends ItemTouchHelper.Callback
{
private final ItemTouchHelperAdapter mAdapter;
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter mAdapter) {
this.mAdapter = mAdapter;
}
@Override
public boolean isItemViewSwipeEnabled() {
return true;
}
@Override
public boolean isLongPressDragEnabled() {
return false;
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
return makeMovementFlags(dragFlags,swipeFlags);
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
if(direction == ItemTouchHelper.LEFT){
Log.i("Swipe direction : ","Left");
}
else if (direction == ItemTouchHelper.RIGHT){
Log.i("Swipe direction : ","Right");
}
mAdapter.onItemDismiss(viewHolder.getAdapterPosition());
}
}
I'm not getting any value in the logs.
Please suggest.