Joao Sardinha
Joao Sardinha

Reputation: 3423

RecyclerView: last item's animation on notifyItemRemoved()

Behaviour's video: (no longer available)

Removing:

viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        mItemManger.removeShownLayouts(viewHolder.swipeLayout);
        mDataset.remove(position);
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, mDataset.size());
        mItemManger.closeAllItems();
        Toast.makeText(view.getContext(), "Deleted " + viewHolder.textViewPos.getText().toString() + "!", Toast.LENGTH_SHORT).show();
    }
});

How can I fix this?

Notes: I'm using this library, and I have the libraries updated.

Update:

viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        mItemManger.removeShownLayouts(viewHolder.swipeLayout);
        mResultArray.remove(position);
        notifyItemRangeChanged(position, mResultArray.size());
        notifyItemRemoved(position);
        mItemManger.closeAllItems();
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                notifyDataSetChanged();
            }
        }, 500);
    }
});

Upvotes: 1

Views: 1586

Answers (2)

user4421510
user4421510

Reputation:

RecyclerView must have layout_height="match_parent". Had the same issue with the last item disappearing and reappearing driving me crazy.

Upvotes: 12

Sahaj Rana
Sahaj Rana

Reputation: 2013

I think you should call notifyItemRangeRemoved(position, 1); instead.

Upvotes: 3

Related Questions