Grundlagen von RecyclerView
Stellen Sie große Listen mit RecyclerView effizient dar. Erstellen Sie einen Adapter und ViewHolder und verbinden Sie die Daten mithilfe von ViewBinding.
Grundlagen von RecyclerView ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 6. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 6 Lektionen.
Warum RecyclerView?
RecyclerView ist die Standardmethode, um in Android eine scrollbare Liste von Elementen anzuzeigen.
Im Gegensatz zum älteren ListView:
- Recycelt RecyclerView Ansichten beim Scrollen – es werden nur so viele erstellt, wie auf den Bildschirm passen
- Unterstützt vertikale und horizontale Listen sowie Raster
- Ist mit LayoutManagern stark anpassbar
RecyclerView-Architektur
RecyclerView benötigt drei Bestandteile:
- RecyclerView – das Widget in Ihrem Layout-XML
- Adapter – bindet Ihre Daten an Elementansichten
- ViewHolder – enthält Referenzen auf die Ansichten innerhalb jedes Listenelements
Der Adapter erstellt ViewHolders und bindet beim Scrollen des Benutzers Daten an sie.
RecyclerView zu XML hinzufügen
Fügen Sie das Widget zu Ihrem Layout hinzu und deklarieren Sie die Abhängigkeit 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 eines Elements
Erstellen Sie für jedes Listenelement eine separate XML-Datei. Zum Beispiel 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>Das Datenmodell
Definieren Sie die Datenklasse, die jedes Element Ihrer Liste repräsentiert:
data class Fruit(
val name: String,
val calories: Int
)Den Adapter erstellen
Der Adapter bindet Ihre Daten an das Elementlayout. Er verfügt über drei wichtige Methoden:
onCreateViewHolder– bläht das Element-XML aufonBindViewHolder– füllt die Daten für ein Element eingetItemCount– Gesamtanzahl der Elemente
Implementierung des Adapters
Ein vollständiger, minimaler RecyclerView-Adapter:
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
}Einrichtung in der Activity
Verknüpfen Sie RecyclerView, Adapter und LayoutManager in Ihrer 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
Ändern Sie den LayoutManager, um statt einer einspaltigen Liste ein Raster anzuzeigen:
LinearLayoutManager– vertikale oder horizontale ListeGridLayoutManager(context, spanCount)– Raster mit N SpaltenStaggeredGridLayoutManager– versetztes Raster im Pinterest-Stil
Kurze Überprüfung
Welche Aufgabe hat der ViewHolder in einem RecyclerView-Adapter?
Zusammenfassung: RecyclerView-Grundlagen
Sie können nun Listen effizient anzeigen:
- RecyclerView recycelt Ansichten für eine bessere Leistung
- Drei Bestandteile: RecyclerView-Widget, Adapter, ViewHolder
- Das Element-XML definiert das Aussehen einer Zeile oder Karte
- Der Adapter verbindet Daten in
onBindViewHoldermit Ansichten - Der LayoutManager steuert Listen-, Raster- oder versetzte Layouts
Als Nächstes: Listenelemente mit Klickereignissen anklickbar machen.
Häufig gestellte Fragen
Ist die Lektion „Grundlagen von RecyclerView“ kostenlos?
Ja — der vollständige Text von „Grundlagen von RecyclerView“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 6 Lektionen.
Was lerne ich in „Grundlagen von RecyclerView“?
Stellen Sie große Listen mit RecyclerView effizient dar. Erstellen Sie einen Adapter und ViewHolder und verbinden Sie die Daten mithilfe von ViewBinding. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 6.
Wie lange dauert die Lektion „Grundlagen von RecyclerView“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Kotlin-Collections
- Grundlagen von RecyclerView
- Click-Ereignisse in RecyclerView
- SharedPreferences
- DataStore Preferences
- Adapter und DiffUtil