I am having a list and if i swipe item will remove from the list but i want to add snackbar with UNDO button in the same position from where item removed from list like Gmail . I tried but every time my snackbar is coming at the top. I am using itemTouchHelper class and here is my onSwipe method
public void onSwiped(final RecyclerView.ViewHolder viewHolder, int direction) {
// Notify the adapter of the dismissal
mAdapter.onItemDismiss(mRecyclerView,viewHolder,viewHolder.getAdapterPosition());
}
onItemDismiss Method
public void onItemDismiss(final RecyclerView mRecyclerView, final RecyclerView.ViewHolder viewHolder, final int position) {
final String mPhoto = mItems.get(position);
Snackbar snackbar = Snackbar
.make(mRecyclerView, "Item Deleted from list", Snackbar.LENGTH_LONG)
.setAction("UNDO", new View.OnClickListener() {
@Override
public void onClick(View view) {
// mItems.(position);
//notifyItemInserted(position);
//recyclerView.scrollToPosition(position);
//mItems.remove(position);
mItems.add(position, mPhoto);
notifyItemInserted(position);
mRecyclerView.scrollToPosition(position);
PhotosToDelete.remove(mPhoto);
}
});
View view = snackbar.getView();
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.AXIS_PULL_AFTER;
view.setLayoutParams(params);
snackbar.show();
mItems.remove(position);
notifyItemRemoved(position);
PhotosToDelete.add(mPhoto);
}