Какие сущности нужны для отображения простого однотипного списка в Android

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

Ответ

Для отображения списка в Android нужны 3 основных компонента:

  1. RecyclerView - контейнер для списка в layout:
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
  1. Adapter - связывает данные с ViewHolder:
class MyAdapter(private val items: List<String>) : 
    RecyclerView.Adapter<MyAdapter.ViewHolder>() {

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        val textView: TextView = view.findViewById(R.id.item_text)
    }

    override fun onCreateViewHolder() = ViewHolder(LayoutInflater.from(parent.context)
        .inflate(R.layout.list_item, parent, false))

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.textView.text = items[position]
    }

    override fun getItemCount() = items.size
}
  1. ViewHolder - хранит ссылки на view элемента (уже включен в Adapter выше)

Дополнительно можно добавить:

  • LayoutManager (Linear/Grid) для управления расположением элементов
  • ItemDecoration для разделителей
  • DiffUtil для оптимизации обновлений списка