0Pricing
Android Academy · Lección

Fundamentos de RecyclerView

Muestre listas grandes de forma eficiente con RecyclerView. Cree un Adapter y un ViewHolder, y conecte los datos mediante ViewBinding.

Fundamentos de RecyclerView es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 2 de 6. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 6 lecciones en total.

¿Por qué RecyclerView?

RecyclerView es la forma estándar de mostrar una lista desplazable de elementos en Android.

A diferencia del antiguo ListView, RecyclerView:

  • Recicla las vistas al desplazarse; solo crea las necesarias para llenar la pantalla
  • Funciona con listas verticales, listas horizontales y cuadrículas
  • Se puede personalizar ampliamente con LayoutManagers

Arquitectura de RecyclerView

RecyclerView necesita tres componentes para funcionar:

  • RecyclerView — el widget del XML de su diseño
  • Adapter — vincula los datos con las vistas de los elementos
  • ViewHolder — conserva referencias a las vistas de cada elemento de la lista

El Adapter crea ViewHolders y vincula los datos a medida que el usuario se desplaza.

Añadir RecyclerView al XML

Añada el widget a su diseño y declare la dependencia en build.gradle:

<!-- In res/layout/activity_main.xml -->
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!-- app/build.gradle dependencies: -->
<!-- implementation 'androidx.recyclerview:recyclerview:1.3.2' -->

Diseño del elemento

Cree un archivo XML independiente para cada elemento de la lista. Por ejemplo, res/layout/item_fruit.xml:

<!-- res/layout/item_fruit.xml -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvCalories"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp" />

</LinearLayout>

El modelo de datos

Defina la clase de datos que representa cada elemento de su lista:

data class Fruit(
    val name: String,
    val calories: Int
)

Crear el Adapter

El Adapter vincula los datos con el diseño de los elementos. Tiene tres métodos principales:

  • onCreateViewHolder — infla el XML del elemento
  • onBindViewHolder — completa los datos de un elemento
  • getItemCount — cantidad total de elementos

Implementación del Adapter

Un Adapter de RecyclerView completo y mínimo:

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView

class FruitAdapter(
    private val fruits: List<Fruit>
) : RecyclerView.Adapter<FruitAdapter.ViewHolder>() {

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

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_fruit, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val fruit = fruits[position]
        holder.tvName.text = fruit.name
        holder.tvCalories.text = "${fruit.calories} kcal"
    }

    override fun getItemCount() = fruits.size
}

Configurar la Activity

Conecte RecyclerView, Adapter y LayoutManager en su Activity:

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

    val fruits = listOf(
        Fruit("Apple", 95),
        Fruit("Banana", 105),
        Fruit("Cherry", 50),
        Fruit("Mango", 202)
    )

    val adapter = FruitAdapter(fruits)

    binding.recyclerView.apply {
        this.adapter = adapter
        layoutManager = LinearLayoutManager(this@MainActivity)
    }
}

GridLayoutManager

Cambie el LayoutManager para mostrar una cuadrícula en lugar de una lista de una sola columna:

  • LinearLayoutManager — lista vertical u horizontal
  • GridLayoutManager(context, spanCount) — cuadrícula con N columnas
  • StaggeredGridLayoutManager — cuadrícula escalonada al estilo de Pinterest

Comprobación rápida

¿Cuál es la función de ViewHolder en un Adapter de RecyclerView?

Resumen: conceptos básicos de RecyclerView

Ahora puede mostrar listas de forma eficiente:

  • RecyclerView recicla las vistas para mejorar el rendimiento
  • Tres componentes: widget RecyclerView, Adapter y ViewHolder
  • El XML del elemento define el aspecto de una fila o tarjeta
  • El Adapter conecta los datos con las vistas en onBindViewHolder
  • LayoutManager controla el diseño de lista, cuadrícula o cuadrícula escalonada

Siguiente: hacer que los elementos de la lista respondan a toques.

Preguntas frecuentes

¿La lección «Fundamentos de RecyclerView» es gratis?

Sí — el texto completo de «Fundamentos de RecyclerView» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 6 lecciones en total.

¿Qué aprenderé en «Fundamentos de RecyclerView»?

Muestre listas grandes de forma eficiente con RecyclerView. Cree un Adapter y un ViewHolder, y conecte los datos mediante ViewBinding. Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 6.

¿Cuánto tiempo toma la lección «Fundamentos de RecyclerView»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Colecciones de Kotlin
  2. Fundamentos de RecyclerView
  3. Eventos de clic de RecyclerView
  4. SharedPreferences
  5. DataStore Preferences
  6. Adaptadores y DiffUtil
← Volver a Android Academy