Android Dasar

Pertemuan #9: Membuat Daftar Menggunakan RecyclerView

RecyclerView merupakan sebuah widget yang dapat digunakan untuk menampilkan data dalam bentuk sebuah daftar. Dalam catatan kuliah sebelumnya, RecyclerView ini dapat digunakan dalam archetype Stream. RecyclerView dapat dikatakan sebagai versi lebih canggih dan fleksibel dari ListView.

RecyclerView berbeda dari ListView terutama dalam beberapa fitur berikut:

RecyclerViewListView
Diperlukan ViewHolder dalam Adapter dengan menerapkan RecyclerView.ViewHolderTidak memerlukan penggunakan ViewHolder
Tata letak Item dapat dikustomisasi karena memiliki Layout Manager bertipe linear, grid atau staggered gridHanya dapat mengatur item dalam susunan liner vertikal dan tidak dapat dikustomisasi
Mudah menambahkan animasi untuk item dengan menggunakan RecyclerView.ItemAnimatorTidak terdapat ketentuan khusus untuk menambahkan animasi ketika menambahkan atau menghapus item
Membutuhkan implementasi khusus untuk memasok data ke adaptor dengan menggunakan RecyclerView.AdapterMemiliki adaptor bawaan untuk data berupa Array dan Cursor (ArrayAdapter dan CursorAdapter)
RecyclerView membutuhkan penggunaan objek RecyclerView.ItemDecoration untuk mengatur dekorasi divider Untuk menggunakan pembagi antaritem dalam daftar, ListView memiliki properti android:divider
Hanya memiliki dukungan untuk mengelola event sentuhan dengan RecyclerView.OnItemTouchListener  Memiliki antarmuka AdapterView.OnItemClickListener untuk mengikat peristiwa klik untuk masing-masing item dalam daftar

Komponen RecyclerView

Dalam RecyclerView terdapat beberapa komponen yang bekerja sama untuk menampilkan data yang kita miliki. Berikut adalah komponen tersebut. 

  • Data merupakan komponen penting yang menjadi sumber isi dari daftar yang ditampilkan dalam RecyclerView
  • RecyclerView sebagai wadah keseluruhan antarmuka pengguna yang menampilkan data dalam bentuk daftar—RecyclerView. Wadah ini nantinya akan diisi View yang disediakan oleh Layout manager. Kita dapat menggunakan salah satu layout manager yang sudah disediakan, yaitu: LinearLayoutManager, GridLayoutManager, dan StaggeredGridLayoutManager.
  • Layout untuk sebuah item data—XML file
  • Layout manager menghandel pengorganisasian antarmuka dalam view — Recyclerview.LayoutManager  
  • Adapter bertugas menghubungkan data ke RecyclerView—RecyclerView.Adapter. Adaptor ini juga yang mengatur objek view holder. Dia akan membuat view holder ketika dibutuhkan. Selain itu, adapter juga yang akan mengikat data ke objek view holder dengan cara memanggil metode onBindViewHOlder() untuk mengikat objek view holder ke posisi dari data yang akan ditampilkan.
  • View holder merupakan objek yang memiliki informasi dari view dan bertugas untuk menampilkan sebuah item dalam sebuah view. Objek-objek view holder ini adalah instan dari kelas RecyclerView.ViewHolder. RecyclerView hanya menampung dan menampilkan view holder sebanyak konten yang dapat ditampilkan dalam layar ditambah beberapa view holder ekstra.

Menggunakan RecyclerView

Untuk menggunakan RecyclerView, berikut beberapa langkah yang dapat dilakukan:

  1. Tambahkan dependensi RecyclerView pada berkas app/build.gradle
    dependencies {
        implementation
    'com.android.support:recyclerview-v7:28.0.0'
    }
  2. Tambahkan RecyclerView pada layout activity, contoh:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- A RecyclerView with some commonly used attributes -->
    <android.support.v7.widget.RecyclerView
       
    android:id="@+id/my_recycler_view"
       
    android:scrollbars="vertical"
       
    android:layout_width="match_parent"
       
    android:layout_height="match_parent"/>
  3. Buat layout XML untuk satu item, contoh:
    <LinearLayout …>
      <TextView
        android:id="@+id/word"
        style="@style/word_title" />
      <Button ... />
    </LinearLayout>
  4. Buat sebuah kelas adapater dengan meng-extend RecyclerView.Adapter
  5. Buat kelas internal dalam kelas adapter dengan meng-extend RecyclerView.ViewHolder
  6. Pada metode onCreate di activity, definisikan RecyclerView bersama dengan adapter dan layout manager yang akan digunakan, contoh:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Create recycler view.
        mRecyclerView = findViewById(R.id.recyclerview);
        // Create an adapter and supply the data to be displayed.
        mAdapter = new WordListAdapter(this, mWordList);
        // Connect the adapter with the recycler view.
        mRecyclerView.setAdapter(mAdapter);
        // Give the recycler view a default layout manager.
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    }
    

Referensi 

Comments

Related posts