Сначала убедитесь, что в build.gradle
модуля app добавлена зависимость:
implementation 'androidx.recyclerview:recyclerview:1.3.2'
Нужно создать XML-файл для отображения одного элемента списка (например, item_string.xml
). Например:
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textViewItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:textSize="18sp" />
Адаптер связывает данные с RecyclerView
. Вот пример:
class StringAdapter(private val items: List<String>) :
RecyclerView.Adapter<StringAdapter.ViewHolder>() {
// ViewHolder хранит ссылки на элементы макета
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val textView: TextView = view.findViewById(R.id.textViewItem)
}
// Создание нового ViewHolder (вызывается RecyclerView)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_string, parent, false)
return ViewHolder(view)
}
// Заполнение данными элемента списка
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.textView.text = items[position]
}
// Возвращает количество элементов
override fun getItemCount() = items.size
}
Теперь нужно добавить RecyclerView
в макет активности/фрагмента и настроить его:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
val items = listOf("Элемент 1", "Элемент 2", "Элемент 3")
// Настройка RecyclerView
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.adapter = StringAdapter(items)
}
}
GridLayoutManager
или StaggeredGridLayoutManager
для других типов расположения.ItemDecoration
.DefaultItemAnimator
или кастомных анимаций.RecyclerView
. для отображения списка строк нужно создать макет элемента, адаптер, настроить RecyclerView
и передать ему данные. Это базовая, но мощная архитектура для работы со списками в Android.