У меня проблема при удалении элемента из RecyclerView (связанного с базой данных SQLite). После успешного удаления элемента отображается анимация, а затем элемент снова появляется внизу (тоже с причудливой анимацией). Когда я проверяю базу данных, она фактически удаляет строку.
Я мог бы решить эту проблему, создавая адаптер снова каждый раз, когда я удаляю элемент, но тогда анимация пропала.
Вот мой код:
Метод адаптера:
public void removeItem(int position){
db = new DBAdapter(context);
db.open();
mCursorAdapter.getCursor().moveToPosition(position);
int idnota = mCursorAdapter.getCursor().getInt(0);
db.borra_nota(idnota); //it deletes the row (delete_note)
db.close();
}
Внутри моей основной деятельности:
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//if (direction == ItemTouchHelper.LEFT) {
listAdapter.removeItem(position);
listAdapter.notifyItemRangeChanged(position, listAdapter.getItemCount());
listAdapter.notifyItemRemoved(position);
Мое первоначальное решение (но без анимации) выглядело так:
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();
sticky = (RecyclerView) findViewById(R.id.lista_notas);
linearLayoutManager = new LinearLayoutManager(MainActivity.this);
sticky.setLayoutManager(linearLayoutManager);
listAdapter = new ListAdapter(MainActivity.this);
sticky.setAdapter(listAdapter);
Конечно, помещая "removeItem" и так далее в метод удаления адаптера.
Любая идея о том, как показать анимацию, предотвращающую отображение в списке нового и фактически несуществующего элемента?
Благодарю вас!