Android-RecyclerView

Recep Yeşilkaya
3 min readSep 23, 2020

--

Verileri listeli ve düzenli olarak görüntülemek için RecyclerView kullanılır. RecyclerView ile verilerimizi yatay(horizontal), dikey(vertical), zik-zak(staggered), ızgara(grid) görünümleri şeklinde listeleyebiliriz.

RecyclerView, ListView’in daha gelişmiş ve esnek bir versiyonudur. RecyclerView da verilerin tümü listelenmez. Kullanıcı ekranda verileri görüntüledikçe veriler çizdirilir. ListView da ise tüm veriler çizdirilir. Ayrıca ListView ile ,verileri çeşitli şekillerde listele yemezken, RecyclerView ile yukarıda bahsettiğim gibi farklı görünümler ile listeleyebiliriz.

Hadi gelin birlikte örnek bir uygulama ile konuyu daha iyi öğrenelim.

RecyclerView’ı 4 madde de toparlayacağız.

  1. Listelenecek verilerin görünümü oluşturulacak.
  2. Model oluşturulacak.
  3. RecyclerViewAdapter yazılacak
  4. UI da liste ile adapter bağlanacak.

Build.gradle(app) içerisine RecyclerView implementantion’u ekleyelim.

dependencies {
implementation 'com.android.support:recyclerview-v7:28.0.0'
}

activity_main.xml içerisinde tek bir companent tutacağımız için FrameLayout kullandık. RecyclerView companentini xml ‘e ekliyoruz.

RecyclerView Item Tasarımı

RecyclerView içerisinde verilerin hangi görünümde olmasını istiyorsak oluşturacağımız layout içerisinde dilediğimiz tasarımı oluşturuyoruz.

Listeleyeceğimiz Name, Job, Salary değerleri için aşağıdaki tasarımı oluşturacağız.

Model

Yaptığımız uygulama için ihtiyacımız olacak değişkenleri data class oluşturarak tanımlıyoruz. Böylelikle listeleme de tanımladığımız modeli kullanacağız.

Android’de sayfalar arası veri alışverişi yaparken Intent/Bundle yapısını çoğunlukla kullanırız. Bu yöntem daha çok string, integer, double, boolean vs. verileri diğer sayfalara göndermek için kullanılır. Bunun dışında herhangi bir object göndermek istersek Parcelable kullanabiliriz.

RecyclerViewAdapter

Listemizin görünümü ve verilerin bağlantı işlemini bu sınıf içerisinde tanımlayacağız.

Yapıyı kurabilmemiz için birde ViewHolder classımıza ihtiyacımız var. Dilerseniz bu classı adapter içerisinde tanımlayabilir veya farklı bir class açarak buradan ilgili tanımlamaları yapabilirsiniz. Biz 2 tane class oluşturacağız.

ViewHolder

ViewHolder class içerisinde, hangi layout u kullanacağımızı belirtiyoruz. Bind metodu ile listedeki veriler ile layout daki companentleri bağlıyoruz. HigherOrder function tanımlaması ile kullanıcının detay sayfası yönlendirilmesi için ilgili parametreler gönderiliyor.

Adapter

onCreateViewHolder() : Bu method adaptör oluşturulduğunda oluşturduğumuz ViewHolder’ın başlatılması için tanımladığımız ViewHolder’ı çağırıyor.

onBindViewHolder() : onCreateViewHolder’dan dönen verileri bağlama işlemini gerçekleştirdiğimiz metottur. ViewHolder da tanımladığımız bind metodu çağırılıyor.

getItemCount() : Listemizin eleman sayısını döndüren metottur.

UI da Adapter Tanımlama

MainActivity onCreate içerisinde recyclerview a ilgili adapter tanımlamasını yapıyoruz. Normalde verilerimizi uzak sunucudan veya local veritabanından alırız. Biz mock adında obje türünde veri tanımlaması yaptık. Listelenecek verilerimizi bu metod ile oluşturuyoruz.

Itemlara tıklandığında Detay sayfasına yönlendirme işlemi HigherOrder Fonksiyon ile yapılıyor.

Mock

RecyclerView da listelenecek veriler için veri tanımlamasını mock objesi içerisinde getList fonksiyonu ile yapıyoruz.

DetailActivity

Intent ile Parcelable olarak gönderdiğimiz verileri activity_detail.xml içerisindeki companentlere yazdırıyoruz.

activity_detail.xml

Android-RecyclerView ı konu edindiğim ve anlatmaya çalıştığım yazımın sonuna geldik. Sağlıklı Günler. Sağlıklı Kodlamalar :)

--

--

Recep Yeşilkaya
Recep Yeşilkaya

No responses yet