Ответ
RecyclerView переиспользует элементы списка через механизм ViewHolder. Основные переиспользуемые компоненты:
- ViewHolder - хранит ссылки на View элемента списка
- ItemView - корневое View элемента (переиспользуется при скролле)
- Pool RecycledViewPool - пул для хранения открепленных ViewHolder'ов
Пример ViewHolder:
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val textView: TextView = itemView.findViewById(R.id.text_view)
}
При скролле RecyclerView не создает новые View, а берет из пула старые и наполняет новыми данными через onBindViewHolder(). Это обеспечивает плавность работы даже с большими списками.