Menambahkan geser untuk refresh ke aplikasi

Pola antarmuka pengguna geser-untuk-refresh diimplementasikan sepenuhnya dalam widget SwipeRefreshLayout, yang mendeteksi geser vertikal, menampilkan status progres khusus, dan memicu metode callback di aplikasi Anda. Aktifkan perilaku ini dengan menambahkan widget ke file tata letak Anda sebagai induk dari ListView atau GridView dan menerapkan perilaku refresh yang dipanggil saat pengguna melakukan geser.

Halaman ini menunjukkan cara menambahkan widget ke tata letak yang ada. Buku ini juga menunjukkan cara menambahkan tindakan refresh ke area tambahan panel tindakan, sehingga pengguna yang tidak dapat menggunakan gestur geser dapat memicu update manual dengan perangkat eksternal.

Menambahkan dependensi SwipeRefreshLayout

Untuk menggunakan SwipeRefreshLayout di aplikasi Anda, tambahkan dependensi berikut ke file build.gradle:

Groovy

dependencies {
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01")
}

Menambahkan Widget SwipeRefreshLayout

Untuk menambahkan widget geser untuk refresh ke aplikasi yang sudah ada, tambahkan SwipeRefreshLayout sebagai induk dari ListView atau GridView tunggal. SwipeRefreshLayout hanya mendukung satu turunan ListView atau GridView.

Contoh berikut menunjukkan cara menambahkan widget SwipeRefreshLayout ke file tata letak yang ada yang berisi ListView:

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

Anda juga dapat menggunakan widget SwipeRefreshLayout dengan ListFragment. Jika tata letak berisi ListView dengan ID "@android:id/list", fungsi geser untuk refresh akan didukung secara otomatis. Namun, secara eksplisit mendeklarasikan ListView dengan cara ini akan menggantikan struktur tampilan ListFragment default. Jika Anda ingin menggunakan struktur tampilan default, ganti bagian dari perilaku SwipeRefreshLayout dan ListFragment.

Menambahkan tindakan refresh ke panel tindakan

Tambahkan tindakan refresh ke panel tindakan aplikasi Anda sehingga pengguna yang tidak dapat melakukan gestur geser dapat memicu update manual. Misalnya, pengguna dengan kebutuhan aksesibilitas dapat memicu tindakan panel tindakan menggunakan perangkat eksternal, seperti keyboard dan D-pad.

Menambahkan tindakan refresh sebagai item menu, bukan sebagai tombol, dengan menyetel atribut android:showAsAction=never. Jika Anda menampilkan tindakan sebagai tombol, pengguna mungkin menganggap tindakan tombol refresh berbeda dengan tindakan geser-untuk-refresh. Membuat tindakan refresh tidak terlalu terlihat di panel tindakan akan mendorong pengguna untuk melakukan update manual dengan gestur geser sekaligus mempertahankan opsi yang dapat diakses tempat pengguna D-pad mencarinya.

Kode berikut menunjukkan cara menambahkan tindakan geser-untuk-refresh ke area tambahan:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_refresh"
        android:showAsAction="never"
        android:title="@string/menu_refresh"/>
</menu>