RecyclerView Swipe To Delete

Arayüze sahip yazılımsal projelerde,  projenin  en az backend yazılımının iyi olması  kadar kullanıcısını doğru tanıyan, onların yapacağı eylemlerin kolay, hızlıca ve eğlenceli bir şekilde yapabilmesini sağlayan ekranların tasarlanması da çok önemlidir.

Bu makalemde, Gmail mail silme işleminde olduğu gibi, listelenen içeriklerin animasyonlu bir şekilde kaydırarak (swipe) silme işlemini ve silinen kaydın geri alınabilmesini sağlayan yapıyı örnekleyerek anlatacağım.

Örneğimizi uyguladığımızda aşağıdaki gibi bir ekran görüntüsünü elde edeceğiz.

Android Uygulamalarda Kaydırarak Silme (Swipe To Delete)

Uygulama tasarımınızda, listelenen kayıtları kaydırma animasyonu ile silmek istiyorsanız, ilk öncelikle arayüz kodlama da  RecyclerView elementini eklemelisiniz.

RecyclerView arayüz elementini işlevsel hale getirmek için de ItemTouchHelper yardımcı sınıfını kullanmanız gerekir.

Not: Proje kodlarında ItemTouchHelper sınıfıyla alakalı gerekli açıklamaları bulabilirsiniz.

Birkaç adımda RecyclerView widget ile Swipe To Delete özelliğini uygulamamızda  nasıl kullanacağımızı görelim.

1-Gerekli Kütüphanelerin Eklenmesi

Android Studio Ide ile oluşturduğum projemin app dizinin altındaki build.gradle dosyasını açıyoruz. Dependencies kod bloklarının arasına aşağıdaki kodları yerleştirerek  kütüphanelerimizi yükleyelim.

2-Arayüz Kodlaması

Custom Listview kullanımında olduğu gibi, burada da 2 tane xml dosyasında kodlarımız bulunmalıdır.

İlk olarak, listelenecek item’larda gösterilecek arayüz elemanlarının yerleştirileceği xml dosyasını oluşturmalıyız.

Diğer xml dosyamıza da RecyclerView widget’ını yerleştirmemiz gerekmektedir.

3-Java kodlama ile işlevsellik oluşturma

Aşağıdaki SwipeToDeleteCallback.java sınıfıdır. ItemTouchHelper.Callback sınıfından kalıtım alınmıştır. Bu sınıf, kaydırma animasyonunu ve kaydırma sonucunda oluşan görüntüyü sağlar.

Aşağıdaki RecyclerViewAdapter sınıfıdır. Item’ları tasarım anlamında özelleştirebilmek için oluşturulmuş bir sınıftır. Ek olarak,  restoreItem metodu sayesinde sildiğimiz kaydı geri alabilir, removeItem metodu sayesinde de item’i silebilirsiniz.

Aşağıdaki MainActivity sınıfıdır. Bu sınıfta listelenecek değerleri bir diziye aktarıp, RecyclerViewAdapter sınıfına gönderdim. Diğer bir yandan item’ı kaydırarak (swipe) sildiğinizde, Snackbar çıkmasını, silme ve silinen item’ın geri almasını sağlayan metodu kullandık.

Böylelikle projemizi oluşturmuş olduk.

Son olarak ufak bir not: Bu yukarıda anlattığım projemin kodlarını indirmek isterseniz; yapmanız gereken tek şey aşağıya koyduğum KODLARI İNDİR resmine tıklamak.

download