Как RecyclerView будет отображать список из 100 элементов

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

Ответ

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

Пример базовой реализации:

val adapter = object : RecyclerView.Adapter<MyViewHolder>() {
    override fun getItemCount() = 100

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = 
        MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item, parent, false))

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.bind(data[position])
    }
}
recyclerView.adapter = adapter

Оптимизации:

  • Используйте setHasFixedSize(true) если размеры элементов фиксированы
  • Для сложных списков - DiffUtil для эффективных обновлений
  • Разные viewType для разных типов элементов