Операция выполнена!
Закрыть
Хабы: Блог компании ПСБ, Kotlin, Разработка мобильных приложений

Привет, Хабр! Меня зовут Михаил Богатиков, я Android-разработчик в ПСБ. В своей работе я часто сталкиваюсь с задачей отображения сложных и динамических списков.

Казалось бы, RecyclerView — давно знакомый инструмент. Но когда данные становятся разнородными, а списки — большими, простой вызов notifyDataSetChanged() превращается в узкое место, вызывающее фризы и дергающуюся анимацию. Как перейти от лобового обновления к точечным изменениям? Как объединить несколько типов элементов в одном адаптере?

В этой статье я пройду путь эволюции работы с RecyclerView.Adapter:

- Разберу, как работает система уведомлений под капотом.

- Вспомню, как DiffUtil и ListAdapter спасли нас от ручных вычислений.

- Расскажу про AsyncListDiffer, ConcatAdapter и нюансы восстановления позиции.

- И наконец, покажу, как спроектировать универсальный адаптер с поддержкой разных ViewHolder, частичным обновлением (Payloads) и ViewBinding — с полным примером кода.

Поехали!

Читать далее
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro