GridLayoutManager ile RecyclerView kullanan basit Android grid örneği (eski GridView gibi)
Eski ListView
ve GridView
işlevlerinin yerini RecyclerView
işlevinin aldığını biliyorum. Ben RecyclerView
kullanarak minimal bir grid kurulumunu gösteren çok basit bir örnek arıyorum. Uzun öğretici tarzda açıklamalar değil, sadece minimal bir örnek arıyorum. Eski GridView'i taklit eden en basit ızgaranın aşağıdaki özelliklerden oluşacağını hayal ediyorum:
- satır başına birden fazla hücre
- her hücrede tek görünüm
- tıklama olaylarına yanıt verir
181
3
Kısa cevap
Liste oluşturmak için bir
RecyclerView
kurmak]1 konusuna zaten aşina olanlar için iyi haber, ızgara oluşturmanın büyük ölçüde aynı olmasıdır. SadeceRecyclerView
i ayarlarkenLinearLayoutManager
yerine birGridLayoutManager
kullanırsınız.Bundan daha fazla yardıma ihtiyacınız varsa, aşağıdaki örneğe göz atın.
Tam örnek
Aşağıda, aşağıdaki resme benzeyecek minimal bir örnek verilmiştir.
Boş bir etkinlikle başlayın. RecyclerView` ızgarasını eklemek için aşağıdaki görevleri gerçekleştireceksiniz. Tek yapmanız gereken her bölümdeki kodu kopyalayıp yapıştırmak. Daha sonra ihtiyaçlarınıza uyacak şekilde özelleştirebilirsiniz.
Gradle bağımlılıklarını güncelle
Aşağıdaki bağımlılıkların uygulamanızın
gradle.build
dosyasında olduğundan emin olun:Sürüm numaralarını en güncel olana güncelleyebilirsiniz.
Etkinlik düzeni oluşturun
Xml düzeninize
RecyclerView
öğesini ekleyin.activity_main.xml
Izgara hücre düzenini oluşturun
RecyclerView
ızgaramızdaki her hücrede yalnızca tek bir
TextView` bulunacaktır. Yeni bir düzen kaynak dosyası oluşturun.recyclerview_item.xml
Adaptörü oluşturun
RecyclerView`, her hücredeki görünümleri verilerinizle doldurmak için bir adaptöre ihtiyaç duyar. Yeni bir java dosyası oluşturun.
MyRecyclerViewAdapter.java
Notlar
RecyclerView'i Activity'de Başlatın
Aşağıdaki kodu ana etkinliğinize ekleyin.
MainActivity.java
Notlar
ItemClickListener
ı uyguladığına dikkat edin. Bu, hücre tıklama olaylarınıonItemClick
içinde ele almamızı sağlar.Bitti
Bu kadar. Şimdi projenizi çalıştırabilmeli ve üstteki resme benzer bir şey elde edebilmelisiniz.
Gidiyor
Yuvarlatılmış köşeler
Otomatik oturan sütunlar
Daha fazla çalışma
Her ne kadar Suragch'ın cevabını beğenip takdir etsem de, bir not bırakmak istiyorum çünkü Adapter (
MyRecyclerViewAdapter
) kodlamasınıonItemClick
Listener yöntemini tanımlamak ve açığa çıkarmak için kodlamanın, sınıf kapsüllemesini doğru kullanmamak nedeniyle bunu yapmanın en iyi yolu olmadığını gördüm. Bu yüzden benim önerim, Adapter'in sadece Dinleme işlemlerini gerçekleştirmesine izin vermek (amacı budur!) ve bunları Adapter'i kullanan Activity'den (MainActivity
) ayırmaktır. Adapter sınıfını bu şekilde ayarlardım:MyRecyclerViewAdapter.java
Lütfen artık
MyRecyclerViewAdapter
içinde tanımlananonItemClick
yöntemine dikkat edin; bu, alınan olay/eylem için görevlerinizi kodlamak isteyeceğiniz yerdir.Bu dönüşümü tamamlamak için yapılması gereken sadece küçük bir değişiklik var: Activity artık
MyRecyclerViewAdapter.ItemClickListener
uygulamasına ihtiyaç duymuyor, çünkü artık bu tamamen Adapter tarafından yapılıyor. Bu da son değişiklik olacaktır:MainActivity.java
Recyclerview layoutmanager'ınızı Gridlayout Moduna Ayarlamanız Gerekiyor, Bunu Yapmak İçin RecyclerView LayoutManager'ınızı Ayarlamak İstediğinizde kodunuzu değiştirmeniz yeterlidir:
Not: İstediğiniz Sütun Sayınızı ###HELP## ile değiştirin