0Pricing
Android Academy · Leçon

Bases de RecyclerView

Affichez efficacement de longues listes avec RecyclerView. Créez un Adapter, un ViewHolder et reliez les données avec ViewBinding.

Bases de RecyclerView est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 6. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 6 leçons au total.

Pourquoi utiliser RecyclerView ?

RecyclerView est la méthode standard pour afficher une liste d’éléments défilante dans Android.

Contrairement à l’ancien ListView, RecyclerView :

  • Réutilise les vues pendant le défilement — il n’en crée que le nombre nécessaire pour remplir l’écran
  • Fonctionne avec les listes verticales, les listes horizontales et les grilles
  • Est hautement personnalisable avec LayoutManagers

Architecture de RecyclerView

RecyclerView nécessite trois éléments pour fonctionner :

  • RecyclerView — le composant dans votre fichier XML de mise en page
  • Adapter — associe vos données aux vues des éléments
  • ViewHolder — conserve les références vers les vues de chaque élément de la liste

L’Adapter crée les ViewHolders et leur associe les données pendant le défilement de l’utilisateur.

Ajouter RecyclerView au fichier XML

Ajoutez le composant à votre mise en page et déclarez la dépendance dans 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' -->

Mise en page d’un élément

Créez un fichier XML distinct pour chaque élément de la liste. Par exemple, 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>

Le modèle de données

Définissez la classe de données qui représente chaque élément de votre liste :

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

Créer l’Adapter

L’Adapter associe vos données à la mise en page des éléments. Il possède trois méthodes essentielles :

  • onCreateViewHolder — gonfle le fichier XML de l’élément
  • onBindViewHolder — renseigne les données d’un élément
  • getItemCount — indique le nombre total d’éléments

Implémentation de l’Adapter

Un Adapter RecyclerView complet et minimal :

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
}

Configurer l’Activity

Reliez RecyclerView, l’Adapter et le LayoutManager dans votre 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

Modifiez le LayoutManager pour afficher une grille au lieu d’une liste à une seule colonne :

  • LinearLayoutManager — liste verticale ou horizontale
  • GridLayoutManager(context, spanCount) — grille comportant N colonnes
  • StaggeredGridLayoutManager — grille décalée de type Pinterest

Vérification rapide

Quel est le rôle du ViewHolder dans un Adapter RecyclerView ?

Récapitulatif : notions de base sur RecyclerView

Vous pouvez désormais afficher des listes efficacement :

  • RecyclerView réutilise les vues pour améliorer les performances
  • Trois éléments : le composant RecyclerView, l’Adapter et le ViewHolder
  • Le fichier XML de l’élément définit l’apparence d’une ligne ou d’une carte
  • L’Adapter relie les données aux vues dans onBindViewHolder
  • Le LayoutManager contrôle la disposition en liste, en grille ou en grille décalée

Ensuite : rendre les éléments de la liste interactifs grâce aux événements de clic.

Questions Fréquemment Posées

La leçon « Bases de RecyclerView » est-elle gratuite ?

Oui — le texte complet de « Bases de RecyclerView » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 6 leçons au total.

Qu'est-ce que j'apprendrai dans « Bases de RecyclerView » ?

Affichez efficacement de longues listes avec RecyclerView. Créez un Adapter, un ViewHolder et reliez les données avec ViewBinding. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 6.

Combien de temps prend la leçon « Bases de RecyclerView » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Collections Kotlin
  2. Bases de RecyclerView
  3. Événements de clic dans RecyclerView
  4. SharedPreferences
  5. Préférences DataStore
  6. Adaptateurs et DiffUtil
← Retour à Android Academy