Столкнулся с такой проблемой, что методы notifyItemRmoved() и notifyItemInserted() не правильно обновляют данные после их вызова. Удаляю item из позиции 1, все нормально, удаляю потом из этой же позиции item который сместился из позиции 2 в 1, удаляется item ниже него, и все в таком духе.
Код метода адаптера, для удаления items за ранее:
public void removeItem(final Item item) {
int position = this.items.indexOf(item);
this.items.remove(position);
super.notifyItemRemoved(position);
}
Вызывал notifyItemRangeChange() после notifyItemRemoved(position); все равно не помогает. В общем recycler напрочь отказывается нормально работать с этими методами, проблему решает только notifyDataSetChanged но им не особо хочу пользоваться.
Из-за чего может быть такая проблема, может кто нибудь знает?
Проблема может возникать если в адаптере hasStableIds возвращает true, а getItemId возвращает не уникальный id а просто текущую позицию элемента.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости