Ответ
Для отображения списка в Android нужны 3 основных компонента:
- RecyclerView - контейнер для списка в layout:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
- 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
}
- ViewHolder - хранит ссылки на view элемента (уже включен в Adapter выше)
Дополнительно можно добавить:
- LayoutManager (Linear/Grid) для управления расположением элементов
- ItemDecoration для разделителей
- DiffUtil для оптимизации обновлений списка