Tips RecyclerView – Frequently Asked Question

Tips RecyclerView – Frequently Asked Question Ketika kamu membuat sebuah Aplikasi, pasti tidak akan lepas yang namanya mengelola data. Lalu bagaimana jadinya jika Aplikasimu butuh menampilkan data dalam jumlah banyak ke layar? Mungkin kamu akan bingung memilih antara memakai ListView atau RecyclerView. Namun semenjak Google meluncurkan pendekatan Material Design, RecyclerView menjadi pilihan pertama yang harus digunakan. Penjelasan dan tutorial lengkap mengenai ini dapat dilihat di Belajar Membuat Aplikasi Android untuk Pemula. Jangan ragu, kelas tersebut gratis dan penjelasannya sangat mudah dipahami. Just check it out!

Di sini, kita akan membahas mengenai beberapa pertanyaan yang sering diajukan mengenai RecyclerView. Pertanyaan-pertanyaan ini memiliki votes paling banyak bagi para coder. Terpilihlah beberapa untuk dirangkum dan akan dibahas dalam bahasa Indonesia. Penasaran? Yuk cermati, siapa tau kamu pernah mengalami permasalahan yang sama.

 

Perbedaan RecyclerView dengan ListView

Sesuai dengan namanya, RecyclerView benar-benar bisa mendaur ulang item yang sedang ditampilkan dengan menggunakan ViewHolder.ViewHolder dalam RecyclerView merupakan suatu kewajiban. Sedangkan dalam ListView, penggunaan ViewHolder hanya berupa saran, tanpa ada paksaan untuk memakainya. Hal ini tentunya sangat melebihkan RecyclerView dalam hal performa. RecyclerView dapat memisahkan list dari wadahnya dengan mudah menggunakan LayoutManager. Kita diberikan kemudahan untuk menyesuaikan tampilan dengan design yang kita inginkan, yaitu dengan: 

  1. LinearLayoutManager yang mendukung tampilan list secara vertikal dan horizontal,
  2. StaggeredLayoutManager yang memberikan tampilan seperti pada Pinterest, dan
  3. GridLayoutManager yang menampilkan Grid seperti pada aplikasi Gallery.Contoh recyclerview

Selain itu kita dapat membuat manager kita sendiri dengan beberapa kustomisasi. Terdapat juga ItemAnimator yang dapat digunakan untuk animasi yang berbeda-beda: menambahkan, memperbarui, dan menghapus data. Lagi-lagi, RecyclerView memiliki kelebihan dalam hal fleksibilitas.

ListView

RecyclerView

ViewHolder tidak wajibViewHolder wajib
Tampilan list di-design untuk vertikalTampilan list dapat secara vertikal, horizontal, grid, dan straggered
Tidak terdapat ItemAnimator secara defaultTerdapat ItemAnimator untuk menambah, memperbarui, dan menghapus item
Terdapat OnItemClickListenerOnItemClickListener harus dibuat sendiri
Default adaptersCustom adapters
Lebih simpelLebih kompleks

Memang banyak kelebihan dibanding ListView, namun penggunaannya menjadi lebih kompleks dan agak susah dipahami. Bagaimanapun, ListView lebih simple dan mudah dipelajari karena kita tidak perlu berurusan dengan LayoutManager, ItemAnimator, dan OnClickListener. Loh, onClickListener? Yap, banyak juga yang bertanya mengapa tidak memiliki onClickListener seperti ListView. Kita bahas di poin selanjutnya, yuk!

 

Kenapa RecyclerView tidak memiliki OnClickListener()?

Sejak ListView dikenalkan, onItemClickListener() miliknya sudah memiliki masalah. Hal ini disebabkan karena tidak ada notifikasi maupun pendokumentasian yang baik mengenai apa yang sedang terjadi ketika ada callback yang tidak terpicu pada saat salah satu item ditekan. Oleh karena itu, banyak terjadi kebingungan dan pertanyaan mengenai OnItemClickListener() pada ListView

Contoh pada ListView ketika ingin melakukan klik pada item :

 

 

Sedangkan di RecyclerView tidak support fitur itu.

"OnClickListener()

RecyclerView sendiri mengambil langkah yang lebih maju dengan tidak menggunakan konsep baris atau kolom, melainkan menata anak-anaknya ke dalam ViewHolder lalu memberikan OnClick kepadanya atau dengan memberikan kuasa kepada developer untuk mengimplementasikan OnClick buatannya.  Well, ada beberapa cara untuk mengimplementasikan OnClick sebagai contohnya dengan menambahkan onClickListener() pada RecyclerView.Adapter :

"OnClickListener()

Dalam modul Android Pemula dan Menjadi Android Developer Expert Dicoding, terdapat juga tutorial untuk membuat RecyclerView listener. 

 

E/RecyclerView﹕ No adapter attached; skipping layout

“Loh loh, kok bisa? Perasaan tadi RecyclerView-nya udah kukasih adapter…”
Pernah mengalami hal yang sama? Coba cek beberapa hal ini dari yang kamu buat :

  1. Apakah kamu memanggil statement itu dari main thread (contoh : onCreate())? Coba cek lagi.
  2. Jangan lupa mememanggil setLayoutManager()
  3. Pastikan getItemCount() memiliki kode yang benar. Pada dasarnya RecyclerView.Adapter akan menghasilkan method getItemCount() yang akan mengembalikan nilai 0. Apabila tidak diubah, maka jumlah item yang dihitung akan tetap 0 sehingga tidak ada data yang dapat ditampilkan ke layar.

Dividers between item

Untuk memberikan garis pembatas antara item satu dengan item lainnya cukup mudah, yaitu dengan addItemDecoration. itemDecoration adalah kelas abstrak yang difasilitasi oleh android.support.v7.widget untuk memberikan garis di antara item, memberikan highlights, atau untuk mengelompokkan suatu grup ke dalam list secara visual. Sejak API 25.5.0, kita dapat menggunakan ItemDecoration DividerItemDecoration untuk memberikan garis vertikal atau horizontal di antara item dalam LinearLayoutManagers.

Selain itu, kita juga dapat mengganti orientasi layar dengan itemDecoration.setOrientaion({VERTICAL/HORIZONTAL}). Mau mengganti warna garis atau membuatnya sendiri? Gunakan drawable dengan itemDecor.setDrawable(Drawable divider). Contoh untuk mengganti warna dan tebal garis :

Contoh file divider.xml :

 

Well done. Semoga sedikit materi di atas memberikan sedikit insight. Semoga bermanfaat. Jangan lupa like, comment, and share! See you on another post!

 

Penjelasan dan tutorial lengkap mengenai RecyclerView dapat diakses dengan mendaftar kelas di Belajar Membuat Aplikasi Android untuk Pemula

Simak juga tips lain mengenai coding dan android di:

“Guideline ngoding di Android Studio” https://blog.dicoding.com/guideline-ngoding-di-android-studio/

“Android Studio: Aplikasi Error! Apa yang harus dilakukan?” https://blog.dicoding.com/android-studio-aplikasi-error-apa-yang-harus-dilakukan/

“Tips Bertanya Coding dengan Baik”  https://blog.dicoding.com/tips-bertanya-coding-baik/

 

 

Belajar mengembangkan aplikasi atau game dengan kurikulum yang telah divalidasi langsung oleh industri dengan Dicoding Academy.

Belajar di Dicoding Sekarang →
Share this:

Android Developer

2 comments, add yours.

Suhu88

Lengkap juga tipsnya, makasih

Leave a comment