RecyclerView Temelleri
RecyclerView ile büyük listeleri verimli şekilde görüntüleyin. Bir Adapter ve ViewHolder oluşturun, ViewBinding kullanarak verileri bağlayın.
RecyclerView Temelleri, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 6 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 6 dersten oluşur.
Neden RecyclerView?
RecyclerView, Android'de kaydırılabilir öğe listesi göstermenin standart yoludur.
Daha eski ListView'ın aksine RecyclerView:
- Kaydırma sırasında görünümleri yeniden kullanır — yalnızca ekrana sığacak kadar görünüm oluşturur
- Dikey listeler, yatay listeler ve ızgaralar için çalışır
- LayoutManagers ile büyük ölçüde özelleştirilebilir
RecyclerView Mimarisi
RecyclerView'ın çalışması için üç parçaya ihtiyacı vardır:
- RecyclerView — yerleşim XML'inizdeki bileşen
- Adapter — verilerinizi öğe görünümlerine bağlar
- ViewHolder — her liste öğesinin içindeki görünümlere başvuruları tutar
Adapter, ViewHolder'ları oluşturur ve kullanıcı kaydırdıkça verileri bunlara bağlar.
RecyclerView'ı XML'e Ekleme
Bileşeni yerleşiminize ekleyin ve bağımlılığı build.gradle içinde bildirin:
<!-- 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' -->Öğe Yerleşimi
Her liste öğesi için ayrı bir XML dosyası oluşturun. Örneğin 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>Veri Modeli
Listenizdeki her öğeyi temsil eden veri sınıfını tanımlayın:
data class Fruit(
val name: String,
val calories: Int
)Adapter Oluşturma
Adapter, verilerinizi öğe yerleşimine bağlar. Üç temel yöntemi vardır:
onCreateViewHolder— öğe XML'ini şişirironBindViewHolder— bir öğenin verilerini doldururgetItemCount— toplam öğe sayısını verir
Adapter Uygulaması
Eksiksiz ve en temel 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
}Activity'de Kurulum
RecyclerView, Adapter ve LayoutManager'ı Activity içinde birlikte bağlayın:
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
Tek sütunlu liste yerine ızgara göstermek için LayoutManager'ı değiştirin:
LinearLayoutManager— dikey veya yatay listeGridLayoutManager(context, spanCount)— N sütunlu ızgaraStaggeredGridLayoutManager— Pinterest tarzı düzensiz ızgara
Hızlı Kontrol
RecyclerView Adapter'ında ViewHolder'ın görevi nedir?
Özet: RecyclerView Temelleri
Artık listeleri verimli şekilde gösterebilirsiniz:
- RecyclerView performans için görünümleri yeniden kullanır
- Üç parça: RecyclerView bileşeni, Adapter, ViewHolder
- Öğe XML'i tek bir satırın/kartın görünümünü tanımlar
- Adapter,
onBindViewHolderiçinde verileri görünümlere bağlar - LayoutManager liste, ızgara veya düzensiz yerleşimi denetler
Sonraki konu: liste öğelerini tıklanabilir olaylarla etkileşimli hâle getirme.
Sıkça Sorulan Sorular
“RecyclerView Temelleri” dersi ücretsiz mi?
Evet — “RecyclerView Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 6 dersten oluşur.
“RecyclerView Temelleri” dersinde ne öğreneceğim?
RecyclerView ile büyük listeleri verimli şekilde görüntüleyin. Bir Adapter ve ViewHolder oluşturun, ViewBinding kullanarak verileri bağlayın. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Android Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 6 dersinin 2. dersidir.
“RecyclerView Temelleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kotlin Koleksiyonları
- RecyclerView Temelleri
- RecyclerView Tıklama Olayları
- SharedPreferences
- DataStore Tercihleri
- Adaptörler ve DiffUtil