Перейдите на ListAdapter для RecyclerView, выполнив 3 простых шага.

Есть всего 3 простых шага, чтобы перевести ваш класс RecyclerView.Adapter в класс ListAdapter.

Почему и когда мне следует мигрировать?

Если у вас есть представление переработчика, которое требует постоянного изменения с течением времени, вам нужно использовать ListAdapter. По умолчанию реализация RecyclerView для изменения элементов списка неэффективна. Как разработчики, мы должны искать эффективные решения.

Что такое Диффутил?

Google придумал класс под названием DiffUtil, который сравнивает текущий список с недавно отправленным списком; он изменяет только необходимый пользовательский интерфейс на экране. Однако это добавляло к уже сложному шаблонному коду, и, следовательно, мы можем использовать ListAdapter для сокращения шаблона.

#0 — Начало работы

Это ваш традиционный адаптер RecyclerView, который вы видите здесь. Мы изменим этот класс, чтобы использовать вместо него ListAdapter.

#1 — Создайте обратный вызов DiffUtil

Как указывалось ранее, нам нужно использовать DiffUtil, чтобы эффективно сравнивать списки.

Мы можем начать с создания статического анонимного объекта интерфейса. Здесь у нас есть две функции:

  1. areItemsTheSame — Эта функция возвращает значение true, если сравниваемые элементы одинаковы. Обычно мы делаем это, сравнивая первичный ключ модальных окон.
  2. areContentsTheSame — Эта функция возвращает значение true, если другие свойства элементов совпадают. Это проверяет, есть ли какие-либо внутренние изменения в самом элементе.

№ 2 — заменить унаследованный класс

Теперь мы можем заменить RecyclerView.Adapter на ListAdapter.

Мы передаем объект DiffUtil в родительский конструктор. Мы успешно перенесли наш класс на ListAdapter; однако наш код все еще не то, что нам нужно.

#3 — Добавляем последние штрихи.

Теперь, когда вы используете ListAdapter, имеет смысл использовать возможности, которые мы получаем от него.

  1. Вы можете удалить функцию getItemCount. ListAdapter реализует это за вас.
  2. Замените свойство list, как показано ниже.
  3. Измените list[position] на getItem(position).

Заключение

Внеся несколько незначительных изменений и следуя этим 3 простым шагам, вы сможете значительно повысить производительность своего приложения. ListAdapter изначально использует RecyclerView.Adapter и делает его более производительным. Если ваш список постоянно меняется, то лучше всегда использовать ListAdapter.

Надеюсь, вам понравилось читать мою статью и вы узнали что-то новое. Спасибо! ✌️

Want to connect?
My GitHub profile.
My Portfolio website.