Какие знаешь способы кеширования наперед у RecyclerView

«Какие знаешь способы кеширования наперед у RecyclerView» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В RecyclerView можно использовать setItemViewCacheSize(int) для кеширования вьюх за пределами экрана. По умолчанию кеш — 2 элемента.

Для кеширования данных:

  1. ViewHolder — хранение данных в самом ViewHolder (но осторожно с утечками памяти).
  2. RecycledViewPool — общий пул для нескольких RecyclerView (setRecycledViewPool).
  3. DiffUtil — для эффективного обновления данных без перерисовки всех элементов.

Пример:

recyclerView.setItemViewCacheSize(20) // Кешируем 20 вьюх
recyclerView.setRecycledViewPool(RecyclerView.RecycledViewPool()) // Общий пул