Sobes.tech
Junior — Middle

Hogyan felel a RecyclerView a listázási elemek megjelenítéséért a képernyőn?

sobes.tech MI

Válasz az MI-től

A RecyclerView felelős a listaelemek megjelenítéséért a következő kulcsfontosságú komponensek segítségével:

  • LayoutManager — meghatározza, hogyan helyezkednek el pontosan az elemek a képernyőn (lineárisan, rácsban stb.).
  • Adapter — adatokat szolgáltat és létrehozza a ViewHolder-t minden elemhez.
  • ViewHolder — tárolja az elemek View hivatkozásait az újrafelhasználáshoz.

A görgetés során a RecyclerView újrahasznosítja a ViewHolder-t, hogy ne kelljen minden elemhez új objektumokat létrehozni, ez jelentősen növeli a teljesítményt és csökkenti a memória terhelést.

Egyszerű Adapter példája:

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

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val textView = LayoutInflater.from(parent.context)
            .inflate(android.R.layout.simple_list_item_1, parent, false) as TextView
        return ViewHolder(textView)
    }

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

    override fun getItemCount() = items.size
}