Комментарии 11
Вот только для реализации как в Телеграмм этого не достаточно т.к. декораторы невозможно нормально анимировать. Придется делать комбинацию со стики хедерами и вьюхой поверх RecyclyView которая будет исчезать при отсутствии скролла. Вроде в телеге как раз так и сделано
Когда я делал декораторы, у которых логика зависела от соседних ячеек, то все ломалось при использовании DiffUtils. Например, возьмем Ваш кейс с ячейками a. Теперь через DiffUtils удалим последнюю ячейку в блоке. Поскольку изменилась только одна ячейка (последняя), то для двух предыдущих перерисовка вызвана не будет, от чего вторая ячейка (которая стала последней в блоке) останется без скругленных краев. Нужно в таком случае на любые изменения в списке вызывать invalidateItemDecorations()
. Есть ли какой то другой способ?
Вот записал видео
Чтобы было всё честно, добавляются и удаляются одинаковые элементы, с одинаковыми id.
www.dropbox.com/s/0k1jibhzx6n6qpr/case_delete_last_add_last.mp4?dl=0
Точно такая же проблема при использовании diffutils и декораторов, из-за этого от них отказался
RecyclerView.ItemDecoration: используем по максимуму