Что такое ViewHolder

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

Ответ

ViewHolder — это паттерн, используемый в RecyclerView для оптимизации производительности. Он хранит ссылки на View-элементы строки списка, чтобы избежать повторного вызова findViewById(), что ускоряет прокрутку.

Пример:

class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    val textView: TextView = itemView.findViewById(R.id.text_view)
}

Преимущества:

  • Уменьшает нагрузку при прокрутке
  • Исключает лишние вызовы findViewById
  • Упрощает доступ к элементам UI

ViewHolder создается один раз для каждого типа элемента списка и переиспользуется через механизм RecyclerView.