Ответ
В RecyclerView можно использовать setItemViewCacheSize(int) для кеширования вьюх за пределами экрана. По умолчанию кеш — 2 элемента.
Для кеширования данных:
- ViewHolder — хранение данных в самом ViewHolder (но осторожно с утечками памяти).
- RecycledViewPool — общий пул для нескольких RecyclerView (
setRecycledViewPool). - DiffUtil — для эффективного обновления данных без перерисовки всех элементов.
Пример:
recyclerView.setItemViewCacheSize(20) // Кешируем 20 вьюх
recyclerView.setRecycledViewPool(RecyclerView.RecycledViewPool()) // Общий пул