Apa fungsi adapter dalam recycler view

Recycler View adalah salah satu komponen pada Android Studio yang memungkinkan aplikasi mampu menampung ribuan bahkan ratusan ribu data tanpa mengalami lag atau hang pada aplikasi. RecyclerView lebih cocok digunakan untuk menampung data yang banyak dan selalu berubah-ubah.

Mungkin bagi kalian yang masih bingung memilih antara RecyclerView VS ListView?


Karena pada dasarnya keduanya sama-sama menampilkan data. Tapi semenjak Google meluncurkan pendekatan secara Material Design, RecyclerView adalah pilihan utama dan wajib digunakan untuk tujuan diatas. Hal ini merujuk pada pernyataan Google yang menyebutkan bahwa Widget RecyclerView adalah versi yang lebih canggih dan fleksibel daripada ListView.

[ads id="ads1"]

Perbedaan RecyclerView dan ListView

ListView sudah lama diperkenalkan sejak Android SDK API 1. Penggunaannya relatif mudah dan untuk menampung data juga lumayan lancar. Sayangnya, untuk menampung data dalam jumlah besar, widget ini menjadi kurang smooth ketika melakukan scrolling data secara vertikal.

Semenjak Android Lollipop diluncurkan dan memperkenalkan widget RecyclerView, masalah diatas telah teratasi dengan baik jika menggunakan RecyclerView.

1. ViewHolder

Perbedaan mendasar lainnya antara RecyclerView VS ListView adalah pada ViewHolder. Jika pada widget ListView, ViewHolder dapat diabaikan penggunaannya, sebaliknya pada widget RecyclerView, ViewHolder bersifat mutlak dan wajib adanya. Inilah yang menjadi kunci dasar mengapa RecyclerView lebih fleksibel dan powerfull daripada ListView. Karena objek data akan di daur ulang pada ViewHolder bukan pada object RecyclerView nya.

2. LayoutManager

Disamping ViewHolder, dengan menggunakan RecyclerView kita diberikan kemudahan untuk menyesuaikan tampilan (customize display) dengan desain yang kita inginkan. Beberapa desain layout yang dapat diaplikasikan pada RecyclerView misalnya :

3. DividerItemDecoration

Jika pada ListView kita harus mendefinisikan dan mencari sendiri sendiri baris pembatas untuk menciptakan sebuah garis/pembatas antar item. Pada RecyclerView hal ini mudah diaplikasikan dengan cara menambahkan DividerItemDecoration pada RecyclerView.

4. ItemAnimator

Method ini digunakan untuk menambahkan animasi pada item RecyclerView ketika item bertambah maupun berkurang.

5. Notifying data adapter

Notifying data adapter menjadi salah satu kelebihan RecyclerView karena akan sangat berguna ketika item bertambah maupun berkurang karena developer tidak perlu lagi melakukan reload data secara penuh.

[ads id="ads2"]

Contoh Resource Layout RecyclerView

Berikut salah satu contoh resource layout untuk membuat recyclerview. Contoh berikut digunakan untuk menampilkan daftar data secara vertikal seperti yang umum digunakan :

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="//schemas.android.com/apk/res/android" xmlns:app="//schemas.android.com/apk/res-auto" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/item_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:padding="5dp" android:background="@drawable/bg_white_border_bottom" android:orientation="horizontal"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/item_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="8dp" android:layout_marginBottom="0dp" android:singleLine="true" android:text="Title" android:ellipsize="end" android:textColor="@color/colorPrimaryDark" android:textSize="15sp" android:textStyle="bold" /> <TextView android:id="@+id/item_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="Description" android:ellipsize="end" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dp" android:layout_marginBottom="5dp" android:orientation="vertical"> <ImageView android:id="@+id/btnDelete" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="end" android:clickable="true" app:srcCompat="@android:drawable/ic_menu_delete"/> <TextView android:id="@+id/item_amount" android:text="Badge" android:textStyle="bold" android:layout_gravity="right" android:textColor="@color/successDisabled" android:textSize="16sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="0dp" /> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> Contoh resource berikut digunakan untuk menampilkan daftar data secara grid seperti pada menu utama :

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="//schemas.android.com/apk/res/android" android:id="@+id/gridMenu_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" android:padding="5dp"> <ImageView android:id="@+id/gridImage" android:layout_width="40dp" android:layout_height="40dp" android:layout_gravity="center|center_horizontal" android:layout_marginTop="10dp" android:src="@android:drawable/ic_menu_gallery" /> <TextView android:id="@+id/gridTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:layout_marginBottom="10dp" android:textAlignment="center" android:text="Title" android:textSize="12sp" android:textColor="@color/primary" android:gravity="center|center_horizontal" /> </LinearLayout> Ya cukup sekian mengenai perkenalan dengan RecyclerView pada Android Studio. Admin hanya membahas sedikit mengenai fungsi dan kegunaan, juga kelebihan dari widget RecyclerView. Untuk tutorial cara penggunaannya insya Allah nanti akan dibahas di lain kesempatan. Semoga informasi ini bermanfaat untuk kita. Jangan lupa jika tinggalkan komentar untuk semua pertanyaan yang berkaitan dengan artikel.

Halo sobat koding. Sebelumnya gw mau cerita dulu nih, kemaren gw berkesempatan untuk interview kerja dengan salah satu startup terbesar di Indonesia. Dan ada salah satu pertanyaan yang menarik buat dibahas yaitu cara kerja recyclerview. Oiya sebelum itu apa itu RecyclerView dan bagaimana cara kerjanya.

RecyclerView adalah suatu grup tampilan untuk kontainer yang bisa digulir. Ini ideal untuk daftar item serupa yang panjang.

Kelas RecyclerView adalah versi ListView yang lebih canggih dan lebih fleksibel. Widget ini adalah kontainer untuk menampilkan rangkaian data besar yang bisa digulir secara sangat efisien dengan mempertahankan tampilan dalam jumlah terbatas. Tapi tau tidak ada juga cara manual untuk membuat list view seperti RecyclerView. Yap… caranya adalah dengan memperpadukan scrollview, horizontal view, dan item. Seperti dibawah ini untuk kodenya

Dan hasilnya tidak jauh beda dengan memakai RecyclerView. Berikut tampilan yang terlihat:

Setelah melihat cara yang manual pasti akan bertanya-tanya kenapa tidak memakai cara manual saja? toh sama-sama juga hasilnya. Nah mungkin apa yang dilihat sama tapi cara kerjanya berbeda dan tentu penggunaan memori. Cara manual tidak efektif kalau dari segi penggunaan untuk daftar data yang panjang. Oleh sebab itu, kita lebih baik menggunakan RecyclerView.

Baca juga  5 Aplikasi Pengenalan Lagu Terbaik untuk Android

Kenapa RecyclerView? Saat kita menampilkan banyak item dalam daftar yang bisa digulir, sebagian besar item tidak terlihat. Misalnya, dalam daftar kata yang panjang atau banyak judul berita, pengguna hanya melihat sedikit item daftar untuk setiap kalinya.

Atau, kita bisa memiliki kumpulan data yang akan berubah saat pengguna berinteraksi dengannya. Jika kita membuat tampilan baru setiap kali data berubah, itu juga membuat banyak tampilan, bahkan untuk kumpulan data yang kecil.

Dari perspektif kinerja, kita bisa meminimalkan jumlah tampilan yang disimpan pada titik tertentu (Memori), dan jumlah tampilan yang harus Anda buat (Waktu). Kedua tujuan ini bisa dicapai dengan membuat agak lebih banyak tampilan daripada yang bisa dilihat pengguna pada layar, dan buat cache serta gunakan kembali tampilan yang dibuat sebelumnya dengan data berbeda saat pengguna menggulir ke dalam dan ke luar tampilan.

Pada RecyclerView hanya menggunakan tampilan dalam jumlah terbatas yang digunakan kembali saat tampilan tersebut tidak tampak di layar. Hal ini menghemat memori dan mempercepat pembaruan item daftar saat pengguna menggulir data, karena tidak perlu membuat tampilan baru untuk setiap item yang muncul.

Secara umum, RecyclerView menyimpan sebanyak mungkin tampilan item yang muat di layar, plus sedikit tambahan pada setiap akhir daftar untuk memastikan pengguliran berjalan cepat dan lancar.

Adapun komponen-komponen dari RecyclerView:

  • Data : Tidak penting dari mana asal data. Anda bisa membuat data secara lokal, seperti yang Anda lakukan dalam latihan, mendapatkannya dari database perangkat seperti yang akan Anda lakukan dalam praktik nanti, atau menariknya dari awan.
  • RecyclerView: Daftar gulir yang berisi item daftar.Instance RecyclerView sebagaimana didefinisikan dalam file layout aktivitas Anda akan bertindak sebagai kontainer tampilan.
  • Layout untuk satu item data:  Semua item daftar tampak sama, sehingga Anda bisa menggunakan layout yang sama untuk semuanya. Layout item harus dibuat secara terpisah dari layout aktivitas, sehingga satu per satu tampilan item bisa dibuat dan diisi data.
  • Pengelola layout: Pengelola layout menangani penyusunan (layout) komponen antarmuka pengguna dalam suatu tampilan. Semua grup tampilan memiliki pengelola layout. Untuk LinearLayout, sistem Android menangani layout untuk Anda. RecyclerView memerlukan pengelola layout eksplisit untuk mengelola susunan item daftar yang terdapat di dalamnya. Layout ini bisa vertikal, horizontal, atau berupa petak.Pengelola layout adalah instance dari Recyclerview.LayoutManager untuk menyusun layout item dalam RecyclerView.
  • Adapter: Adapter menghubungkan data Anda dengan RecyclerView. Adapter menyiapkan data dan cara menampilkan data dalam view holder. Bila data berubah, adapter akan memperbarui materi tampilan item daftar terkait dalam RecyclerView.Adapter juga merupakan ekstensi dari RecyclerView.Adapter. Adapter menggunakan ViewHolder untuk menampung tampilan yang menyusun setiap item dalam RecyclerView, dan mengikat data untuk ditampilkan dalam tampilan yang menampilkannya.
  • View holder: View holder memperluas kelas ViewHolder. View holder berisi tampilan informasi untuk menampilkan satu item dari layout item.View holder digunakan oleh adapter untuk menyediakan data, yang merupakan ekstensi dari RecyclerView.ViewHolder

Baca juga  Aplikasi Penambah Kapasitas RAM Ponsel Android

Jadi kesimpulan yang bisa didapatkan pada pembahasan kali ini adalah pemakaian RecyclerView jauh lebih efektif dalam menampilkan daftar data yang panjang.

Mungkin itu dulu dari gw, semoga bermanfaat untuk kalian semua

See you..

Baca Juga

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA