Saya tahu itu RecyclerView
telah menggantikan fungsi yang lama ListView
danGridView
. Saya mencari contoh yang sangat mendasar yang menunjukkan pengaturan grid minimal menggunakan RecyclerView
. Saya tidak mencari penjelasan gaya tutorial yang panjang, hanya contoh minimal. Saya membayangkan grid paling sederhana yang meniru GridView lama akan terdiri dari beberapa fitur berikut:
- beberapa sel per baris
- tampilan tunggal di setiap sel
- menanggapi acara klik
Jawaban:
Jawaban singkat
Bagi mereka yang sudah terbiasa dengan pengaturan
RecyclerView
untuk membuat daftar , kabar baiknya adalah membuat kotak sebagian besar sama. Anda hanya menggunakanGridLayoutManager
bukan sebagaiLinearLayoutManager
ketika Anda mengaturRecyclerView
.Jika Anda membutuhkan lebih banyak bantuan dari itu, lihat contoh berikut.
Contoh lengkap
Berikut ini adalah contoh minimal yang akan terlihat seperti gambar di bawah ini.
Mulailah dengan aktivitas kosong. Anda akan melakukan tugas-tugas berikut untuk menambahkan
RecyclerView
kisi. Yang perlu Anda lakukan adalah menyalin dan menempelkan kode di setiap bagian. Nanti Anda dapat menyesuaikannya agar sesuai dengan kebutuhan Anda.Perbarui dependensi Gradle
Pastikan dependensi berikut ada di
gradle.build
file aplikasi Anda :Anda dapat memperbarui nomor versi ke apa pun yang terbaru .
Buat tata letak aktivitas
Tambahkan
RecyclerView
tata letak ke xml Anda.activity_main.xml
Buat tata letak sel jaringan
Setiap sel di
RecyclerView
grid kami hanya akan memiliki satuTextView
. Buat file sumber daya tata letak baru.recyclerview_item.xml
Buat adaptor
The
RecyclerView
perlu adaptor untuk mengisi pandangan dalam setiap sel dengan data Anda. Buat file java baru.MyRecyclerViewAdapter.java
Catatan
GridView
dan merupakan kebutuhan bersama. Anda dapat menghapus kode ini jika Anda tidak membutuhkannya.Inisialisasi RecyclerView dalam Aktivitas
Tambahkan kode berikut ke aktivitas utama Anda.
MainActivity.java
Catatan
ItemClickListener
yang kami tetapkan dalam adaptor kami. Ini memungkinkan kami untuk menangani acara klik sel dionItemClick
.Jadi
Itu dia. Anda harus dapat menjalankan proyek Anda sekarang dan mendapatkan sesuatu yang mirip dengan gambar di atas.
Sedang terjadi
Sudut membulat
Kolom pas otomatis
Pelajaran lanjutan
sumber
recyclerView.setLayoutManager(new GridLayoutManager(this, numberOfColumns));
Walaupun saya suka dan menghargai jawaban Suragch , saya ingin meninggalkan catatan karena saya menemukan bahwa pengkodean Adapter (
MyRecyclerViewAdapter
) untuk mendefinisikan dan mengekspos metode PendengaronItemClick
bukan cara terbaik untuk melakukannya, karena tidak menggunakan enkapsulasi kelas benar. Jadi saran saya adalah membiarkan Adapter menangani operasi Listening semata-mata (itu tujuannya!) Dan memisahkan yang dari Kegiatan yang menggunakan Adapter (MainActivity
). Jadi ini adalah bagaimana saya akan mengatur kelas Adapter:MyRecyclerViewAdapter.java
Harap perhatikan
onItemClick
metode yang sekarang didefinisikan dalamMyRecyclerViewAdapter
itu adalah tempat di mana Anda ingin memberi kode tugas Anda untuk peristiwa / tindakan yang diterima.Hanya ada sedikit perubahan yang harus dilakukan untuk menyelesaikan transformasi ini: Kegiatan tidak perlu diimplementasikan
MyRecyclerViewAdapter.ItemClickListener
lagi, karena sekarang hal itu dilakukan sepenuhnya oleh Adaptor . Ini akan menjadi modifikasi terakhir:MainActivity.java
sumber
Activity
. Karena hanya itu pendengar klik dapat mengetahui tentangActivity
pandangan dan lainnyaFragments
,Activities
, dll Adaptor hanya dapat mengirim klik acara untuk tingkat atas. Seharusnya memiliki antarmukaItemClickListener
dengan begitu banyak acara, karena banyak tampilan peristiwa adaptor dapat menghasilkan. Solusi ini ditulis lebih awal: stackoverflow.com/a/40563598/2914140 .Yo Harus Menetapkan layoutmanager recyclerview Anda ke Mode Gridlayout, Untuk Lakukan Ini Ubah saja kode Anda ketika Anda Ingin Mengatur RecyclerView LayoutManager Anda:
Catatan: ganti Jumlah Kolom Anda yang Anda inginkan dengan ### BANTUAN ###
sumber