Nozioni di base su RecyclerView
Visualizzare grandi elenchi in modo efficiente con RecyclerView. Creare un Adapter e un ViewHolder e collegare i dati usando ViewBinding.
Nozioni di base su RecyclerView è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 2 di 6. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 6 lezioni in totale.
Perché RecyclerView?
RecyclerView è il metodo standard per visualizzare in Android un elenco scorrevole di elementi.
A differenza del precedente ListView, RecyclerView:
- Ricicla le viste durante lo scorrimento: ne crea solo il numero necessario per riempire lo schermo
- Funziona con elenchi verticali, elenchi orizzontali e griglie
- È altamente personalizzabile con i LayoutManager
Architettura di RecyclerView
Per funzionare, RecyclerView richiede tre componenti:
- RecyclerView — il widget nel layout XML
- Adapter — collega i dati alle viste degli elementi
- ViewHolder — conserva i riferimenti alle viste all'interno di ogni elemento della lista
L'Adapter crea i ViewHolder e vi associa i dati mentre l'utente scorre la lista.
Aggiungere RecyclerView all'XML
Aggiunga il widget al layout e dichiari la dipendenza in 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' -->Layout dell'elemento
Crei un file XML separato per ogni elemento della lista. Ad esempio, 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>Il modello dei dati
Definisca la classe dati che rappresenta ogni elemento della lista:
data class Fruit(
val name: String,
val calories: Int
)Creazione dell'Adapter
L'Adapter collega i dati al layout dell'elemento. Dispone di tre metodi principali:
onCreateViewHolder— esegue l'inflazione dell'XML dell'elementoonBindViewHolder— inserisce i dati di un elementogetItemCount— restituisce il numero totale di elementi
Implementazione dell'Adapter
Un Adapter RecyclerView completo e minimale:
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
}Configurazione nell'Activity
Colleghi RecyclerView, Adapter e LayoutManager nella propria 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
Modifichi il LayoutManager per visualizzare una griglia invece di un elenco a colonna singola:
LinearLayoutManager— elenco verticale o orizzontaleGridLayoutManager(context, spanCount)— griglia con N colonneStaggeredGridLayoutManager— griglia sfalsata in stile Pinterest
Verifica rapida
Qual è il compito di ViewHolder in un Adapter RecyclerView?
Riepilogo: nozioni di base su RecyclerView
Ora può visualizzare le liste in modo efficiente:
- RecyclerView ricicla le viste per migliorare le prestazioni
- Tre componenti: widget RecyclerView, Adapter e ViewHolder
- L'XML dell'elemento definisce l'aspetto di una riga o di una scheda
- L'Adapter collega i dati alle viste in
onBindViewHolder - LayoutManager controlla il layout a elenco, a griglia o sfalsato
Prossimo argomento: rendere gli elementi della lista selezionabili con gli eventi di clic.
Impara Kotlin con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 36
- Lezioni
- 152
Domande Frequenti
La lezione «Nozioni di base su RecyclerView» è gratuita?
Sì — il testo completo di «Nozioni di base su RecyclerView» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 6 lezioni in totale.
Cosa imparerò in «Nozioni di base su RecyclerView»?
Visualizzare grandi elenchi in modo efficiente con RecyclerView. Creare un Adapter e un ViewHolder e collegare i dati usando ViewBinding. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Android Academy?
Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 6.
Quanto tempo richiede la lezione «Nozioni di base su RecyclerView»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Android Academy?
Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Collection di Kotlin
- Nozioni di base su RecyclerView
- Eventi di clic di RecyclerView
- SharedPreferences
- DataStore Preferences
- Adapter e DiffUtil