RecyclerView is a UI component in Android that allows you to efficiently display large sets of data. It is a more advanced version of ListView and GridView, and it is highly customizable and flexible. RecyclerView uses a ViewHolder pattern to improve performance and smooth scrolling, and it allows you to create complex layouts with multiple view types. RecyclerView is often used in conjunction with an adapter, which provides the data to the RecyclerView and creates the views that are displayed in the list or grid.

Here is a sample code for creating a RecyclerView in Kotlin using ViewBinding:

MainActivity.kt

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import com.example.recyclerview.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    private lateinit var recyclerView: RecyclerView
    private lateinit var adapter: MyAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        recyclerView = binding.recyclerView
        recyclerView.layoutManager = LinearLayoutManager(this)
        adapter = MyAdapter(getData())
        recyclerView.adapter = adapter
    }

    private fun getData(): List<String> {
        val data = mutableListOf<String>()
        for (i in 1..20) {
            data.add("Item $i")
        }
        return data
    }
}

MyAdapter.kt

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.example.recyclerview.databinding.ItemBinding

class MyAdapter(private val data: List<String>) :
    RecyclerView.Adapter<MyAdapter.ViewHolder>() {

    class ViewHolder(private val binding: ItemBinding) :
        RecyclerView.ViewHolder(binding.root) {

        fun bind(itemData: String) {
            binding.itemText.text = itemData
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val inflater = LayoutInflater.from(parent.context)
        val binding = ItemBinding.inflate(inflater, parent, false)
        return ViewHolder(binding)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bind(data[position])
    }

    override fun getItemCount(): Int {
        return data.size
    }
}

This code creates a RecyclerView with a custom adapter and populates it with data. The data is displayed in a simple TextView inside each item view. You can modify the code to suit your specific needs.

Sample Code of Recyclerview

Create dynamic lists with RecyclerView  |  Android Developers

Customize your RecyclerView  |  Android Developers