Android

Android’de RecyclerView ve CardView Kullanımı

Hiç kullanıcılara bir liste içinde veri göstermek zorunda olduğunuz bir uygulama oluşturmak istediniz mi? Bu herhangi bir şey olabilir, örneğin yapılacaklar listesi, alışveriş listesi, arkadaş listesi, iletişim listesi, vb. Bu tür listelerin önemli bir özelliği, verilerinin genellikle benzer şekilde biçimlendirilmiş konteynerlerde gösterilmesi gerektiğidir. Örneğin, bir iletişim listesi oluşturuyorsanız, muhtemelen listedeki her iletişim kişisinin adını ve numarasını göstereceksiniz.

Android’de kullanabileceğiniz iki çok kullanışlı görünüm vardır. Bunlar CardView ve RecyclerView olarak adlandırılır. CardView, bir listedeki bireysel öğelerle ilgili verileri sergilemek için kullanışlıdır. RecyclerView, bu öğelerin bir listesini sergilemek için kullanışlıdır.

Bu öğreticide, bu iki görünümü birlikte kullanarak mahalledeki insanların bir listesini oluşturmayı öğreneceksiniz.

Başlangıç Ayarları

Android Studio‘yu açın ve New Project düğmesine tıklayın. Empty Views Activity seçin ve ardından Next düğmesine tıklayın.

Sonraki ekranda, uygulamanın adını istediğiniz şekilde ayarlayın. Ben onu “RecyclerCard” olarak ayarladım. Dil olarak Java seçtim. Ancak günümüzde Kotlin kullanarak da devam edebilirsiniz. Minimum SDK’yi 23 veya daha yüksek bir değere ayarlayın. İşiniz bittiğinde, Finish tıklayın.

Ayrıca daha düşük bir değere de ayarlayabilirsiniz, ancak bu durumda build.gradle dosyanıza aşağıdaki bağımlılıkları eklemeniz gerekecektir.

CardView Oluşturma

Bir CardView, verilerinizi veya öğenizi benzer bir stildeki konteynerlerde görüntülemek istediğinizde idealdir. Temelde, yuvarlatılmış köşeli bir arka plan ve gölgeye sahip bir FrameLayout‘tur. CardView için yerel destek, Lollipop’ta eklendi, burada gölgeler için elevation özelliğini kullanır. Daha eski platformlar, aynı etkiyi elde etmek için özel bir simüle edilmiş gölgeye güvenirler.

Aşağıdaki XML kullanılarak boş bir CardView oluşturabilirsiniz:

Boş bir CardView çok kullanışlı olmayacaktır. Mahallemizdeki insanlar hakkında bilgi göstermek için kullanacağız. Bu yüzden CardView içine bir resim, isim, yaş ve meslek göstermek için bazı widget’lar ekleyelim.

CardView‘ımız daha büyük bir uygulamanın bir parçası olacak. Bu yüzden CardView UI için XML kodunu item.xml adında bir dosyanın içine yerleştireceğiz. Bu dosyayı oluşturmak için layout klasörüne gidin ve ardından sağ tıklayarak Yeni Bir Düzen Kaynak Dosyası (Layout Resource File) ekleyin.

Tam XML dosyası aşağıdakine benzer olacaktır(person_row.xml):

CardView‘ımız, bir ImageView widget’ı ve bir LinearLayout widget’ını içeren bir RelativeLayout widget’ını içerir. LinearLayout widget’ı, kişinin adını, yaşını ve mesleğini tutan üç daha fazla TextView widget’ını içerir.

Aşağıdaki resim CardView widget’ını göstermektedir:

Bir RecyclerView oluşturmak, bir CardView oluşturmaktan biraz daha karmaşıktır. Bu, gereken XML’i sadece yazmak yeterli değildir; ayrıca veriyle doldurmak için Kotlin veya Java kodu da yazmanız gerekir.

Aşağıdaki XML kodu, activity_main.xml dosyamıza eklenir. Bu dosya bir TextView‘in altında bir RecyclerView içerir.

Önizleme düzeni dosyası, “KOMŞULAR” başlığını ve ardından “item 0”, “item 1”, “item 2” vb. başlıklı bir öğeler listesi gösterecektir. Ancak, uygulamayı bir cihaza yüklemek sadece başlığı gösterecek ve başka bir şey göstermeyecektir. Bu, RecyclerView’ı doldurmak için herhangi bir Kotlin kodu yazmadığımız içindir.

RecyclerView kütüphanesi, sağladığınız verilere ve öğeleri sunmak için sağladığınız düzen bilgilerine dayanarak dinamik olarak öğeler oluşturur. Bu widget, ekranın dışına kaydırılmış öğeleri geri dönüştürdüğü için büyük miktarda veri gösterildiğinde önemli performans kazançları sağlar.

Şimdi, RecyclerView widget’ımızı dolduran bazı kodlar yazacağız.

Yardımcı Sınıflar Oluşturma MainActivity.java dosyanız zaten bazı kodlar içerecek. İmlecinizi MainActivity sınıfının altına veya harici olarak dışına aşağıdaki satırı ekleyin(Kisi.java):

MainActivity sınıfı içine onCreate() metodunun hemen üstüne aşağıdaki satırı ekleyelim:

Bu satır, Kisi sınıfı türünde bir dizi oluşturur ve bu dizide farklı kişilerin bilgilerini depolar. Her bir kişi için ad, yaş, meslek ve resim ID’si bilgilerini içeren bir Kisi nesnesi oluşturulur. Bu örnek kişiler, R.drawable içindeki resim kaynaklarını kullanır. Bu kaynaklar, drawable klasöründe bulunan resim dosyalarına işaret eder.

Şimdi, onCreate() metodunun içinden bu yöntemi çağırarak kisiler listemizi dolduracağız. Burada, farklı insanların adını, yaşını, mesleğini ve avatarını sağlıyoruz. Avatar bağımsız değişkeni, farklı drawable kaynaklarına bir referans içerir, bunlar basit png dosyalarıdır.

Şimdi, KisiAdapter adında başka bir sınıf tanımlayacağız. Bu sınıf, RecyclerView.Adapter‘ı genişleten özel bir adaptör sınıfıdır. Bu sınıf, Kisi nesnelerinin listesini kurucu argümanı olarak alacaktır. Adaptör, listemizdeki her öğe için görünümler sağlamaktan sorumludur. İşte KisiAdapter sınıfı için tam kod:

Burada dikkate alınması gereken birkaç şey var. İlk olarak, getItemCount(), onCreateViewHolder() ve onBindViewHolder() adlı üç farklı yöntemi geçersiz kılıyoruz (override ediyoruz). Ayrıca, her bir RecyclerView öğesindeki görünümlere bir referans içeren KisiViewHolder adlı bir iç sınıf içerir. Bu özel durumda, üç farklı TextView widget’ına ve bir ImageView widget’ına referans içerir.

getItemCount() yöntemi, öğe sayısını belirlemek için içeride kullanılır. Bu yöntemi, listemizdeki öğe sayısı hakkında doğru bilgi sağlamak için geçersiz kılıyoruz.

onCreateViewHolder() yöntemi, listedeki her öğe için yeni bir KisiViewHolder nesnesi oluşturur ve döndürür. Burada inflate() yöntemine CardView için düzen dosyasını ilettiğimizi görebilirsiniz. onBindViewHolder() yöntemi, görünüm tutucusundaki görünümler için veri bağlama sağlar.

onCreate() Yönteminin Güncellenmesi Artık tüm yardımcı kodlarımızı yerine koyduğumuza göre, MainActivity için onCreate() yöntemini güncelleyebiliriz. İşte onCreate() yönteminin uygulama kodu:

Android'de RecyclerView ve CardView Kullanımı
Android’de RecyclerView ve CardView Kullanımı

Sol ekran, adaptörümüz olmadan uygulamanın nasıl göründüğünü gösterir. Görebileceğiniz gibi, RecyclerView, veri sağlanmadığı sürece hiçbir şeyi renderlemez. Görüntü dosyaları, SVGREPO bir Avatar simge setinden alınmıştır. Bunlar, drawable klasörüne yerleştirmeniz gereken basit png dosyalarıdır.

Son Düşünceler

Bu öğreticide, Android’de bir CardView ve RecyclerView oluşturmanın temellerini öğrendiniz. Bu görünümler genellikle benzer verilere sahip öğelerin bir listesini görüntülemek için birlikte kullanılır. RecyclerView, ekranınızdan kaydırılmış öğeleri geri dönüştürdüğü için büyük listeler için büyük bir performans artışı sağlar. Verileri listelerde görüntülerken RecyclerView kullanmayı tercih etmelisiniz.

Yorum Yap

Yorum yapmak için tıklayın