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 :
- LinearLayoutManager, layout yang mendukung tampilan list secara vertikal dan horizontal.
- StaggeredGridLayoutManager yang memberikan tampilan seperti berikut :
- GridLayoutManager yang menampilkan Grid seperti pada aplikasi Gallery dan Menu.
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="http://schemas.android.com/apk/res/android" xmlns:app="http://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="http://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.
Posting Komentar