1. Lihat Pemegang
Di ListView, mendefinisikan pemegang tampilan adalah pendekatan yang disarankan untuk menyimpan referensi untuk tampilan. Tapi itu bukan paksaan. Meskipun dengan tidak melakukannya, ListView digunakan menunjukkan data basi. Kelemahan utama lainnya dari tidak menggunakan pemegang tampilan dapat menyebabkan operasi yang berat untuk menemukan tampilan oleh id setiap waktu. Yang mengakibatkan ListViews lamban.
Masalah ini diselesaikan di RecylerView dengan menggunakan kelas RecyclerView.ViewHolder. Ini adalah salah satu perbedaan utama dalam RecyclerView dan ListView. Saat menerapkan RecyclerView, kelas ini digunakan untuk mendefinisikan objek ViewHolder yang digunakan oleh adaptor untuk mengikat ViewHolder dengan suatu posisi. Poin lain yang perlu dicatat di sini, adalah bahwa ketika menerapkan adaptor untuk RecyclerView, menyediakan ViewHolder adalah wajib. Ini membuat implementasi sedikit rumit, tetapi menyelesaikan masalah yang dihadapi di ListView.
2. Manajer Tata Letak
Ketika berbicara tentang ListViews, hanya satu jenis ListView yang tersedia yaitu ListView vertikal. Anda tidak dapat menerapkan ListView dengan gulir horizontal. Saya tahu ada cara untuk menerapkan gulir horizontal, tapi percayalah itu tidak dirancang untuk bekerja seperti itu.
Tetapi sekarang ketika kita melihat Android RecyclerView vs ListView, kita juga memiliki dukungan untuk koleksi horisontal. Bahkan mendukung beberapa jenis daftar. Untuk mendukung beberapa jenis daftar, ia menggunakan kelas RecyclerView.LayoutManager. Ini adalah sesuatu yang baru yang tidak dimiliki ListView. RecyclerView mendukung tiga jenis Manajer Tata Letak yang telah ditentukan:
LinearLayoutManager - Ini adalah manajer tata letak yang paling umum digunakan dalam kasus RecyclerView. Melalui ini, kita dapat membuat daftar gulir horizontal dan vertikal. StaggeredGridLayoutManager - Melalui manajer tata letak ini, kita dapat membuat daftar terhuyung. Sama seperti layar Pinterest. GridLayoutManager– Manajer tata letak ini dapat digunakan untuk menampilkan kisi, seperti galeri gambar mana pun.
3. Barang Animator
Animasi dalam daftar adalah dimensi yang sama sekali baru, yang memiliki kemungkinan tak terbatas. Dalam ListView, karena itu tidak ada ketentuan khusus yang melaluinya seseorang dapat menganimasikan, menambah atau menghapus item. Alih-alih nanti seiring perkembangan Android, ViewPropertyAnimator disarankan oleh Google Chet Haase dalam tutorial video ini untuk animasi di ListView.
Di sisi lain membandingkan Android RecyclerView vs ListView, ia memiliki kelas RecyclerView.ItemAnimator untuk menangani animasi. Melalui kelas ini animasi kustom dapat didefinisikan untuk penambahan item, penghapusan, dan memindahkan acara. Juga menyediakan DefaultItemAnimator, jika Anda tidak memerlukan penyesuaian.
4. Adaptor
Adaptor ListView mudah diterapkan. Mereka memiliki metode utama getView di mana semua keajaiban terjadi. Di mana pandangan terikat pada suatu posisi. Mereka juga memiliki metode registerDataSetObserver yang menarik di mana orang dapat mengatur pengamat di adaptor. Fitur ini juga hadir di RecyclerView, tetapi kelas RecyclerView.AdapterDataObserver digunakan untuk itu. Tetapi poin yang mendukung ListView adalah mendukung tiga implementasi standar adaptor:
ArrayAdapter CursorAdapter SimpleCursorAdapter Sedangkan RecyclerView adapter, memiliki semua fungsionalitas yang dimiliki adapter ListView kecuali dukungan bawaan untuk kursor DB dan ArrayLists. Di RecyclerView.Adapter sampai sekarang kita harus membuat implementasi kustom untuk memasok data ke adaptor. Sama seperti yang dilakukan BaseAdapter untuk ListViews. Meskipun jika Anda ingin tahu lebih banyak tentang penerapan adaptor RecyclerView, lihat Contoh Android RecyclerView.
5. Memberitahu Perubahan Data
Saat bekerja dengan ListView, jika kumpulan data diubah, Anda harus memanggil metode notifyDataSetChanged dari adaptor yang mendasarinya untuk menyegarkan data. Atau setel metode setNotifyOnChange ke true memetikan Anda ingin memanggil metode notifyDataSetChanged secara otomatis. Namun dalam kedua kasus, hasilnya sangat besar. Pada dasarnya itu menyegarkan tampilan daftar.
Tetapi sebaliknya dalam adaptor RecyclerView, jika satu item atau serangkaian item telah berubah, ada metode untuk memberitahukan perubahan tersebut. Itu notifyItemChanged dan notifyItemRangeChanged masing-masing dan banyak lagi seperti:
notifyItemInsterted notifyItemMoved notifyItemRangeInsterted notifyItemRangeRemoved Dan tentu saja ia memiliki metode asli untuk menyegarkan seluruh daftar yaitu notifyDataSetChanged yang memberi tahu seluruh paket data yang telah diubah yang telah disesuaikan.
6. Barang Dekorasi
Untuk menampilkan pembagi kustom dalam ListView, orang dapat dengan mudah menambahkan parameter ini di ListView XML:
XHTML android: divider = "@ android: color / transparan" android: dividerHeight = "5dp" 1 2 android: divider = "@ android: color / transparan" android: dividerHeight = "5dp" Bagian yang menarik tentang Android RecyclerView adalah, sampai sekarang ini tidak menunjukkan pembagi antara item secara default. Meskipun orang-orang di Google pasti meninggalkan ini untuk penyesuaian, sengaja. Tapi ini sangat meningkatkan upaya untuk pengembang. Jika Anda ingin menambahkan pembagi antara item, Anda mungkin perlu melakukan implementasi kustom dengan menggunakan kelas RecyclerView.ItemDecoration.
Atau Anda dapat menerapkan peretasan dengan menggunakan file ini dari sampel resmi: DividerItemDecoration.java
7. OnItemTouchListener
Listviews dulunya memiliki implementasi sederhana untuk mendeteksi klik, yaitu dengan menggunakan antarmuka AdapterView.OnItemClickListener.
Tetapi di sisi lain antarmuka RecyclerView.OnItemTouchListener digunakan untuk mendeteksi acara sentuh di Android RecyclerView. Ini sedikit menyulitkan implementasi, tetapi memberikan kontrol yang lebih besar kepada pengembang untuk mencegat acara sentuh. Dokumentasi resmi menyatakan, ini dapat berguna untuk manipulasi gestur karena mencegat acara sentuh sebelum dikirim ke RecyclerView.
RecyclerView
jauh lebih cepat dan lebih fleksibel dengan API yang jauh lebih baik. Hal-hal seperti menjiwai penambahan atau penghapusan item sudah diterapkanRecyclerView
tanpa Anda harus melakukan apa pun. Tidak ada pertanyaan tentang hal itu, buangListView
di tempat sampah,RecyclerView
ada di sini untuk mencuri perhatian.