Menambahkan geser untuk refresh ke aplikasi

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

Halaman ini menunjukkan cara menambahkan widget ke tata letak yang ada. Bagian ini juga menunjukkan cara menambahkan muat ulang ke area tambahan panel tindakan sehingga pengguna yang tidak dapat menggunakan gestur geser dapat memicu pembaruan manual dengan perangkat eksternal.

Menambahkan dependensi GeserRefreshLayout

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 ada, tambahkan SwipeRefreshLayout sebagai induk dari satu ListView atau GridView. SwipeRefreshLayout hanya mendukung satu ListView atau GridView turunan.

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 berisi ListView dengan ID "@android:id/list", yaitu fungsi geser untuk refresh didukung secara otomatis. Namun, secara eksplisit mendeklarasikan ListView dengan cara ini akan menggantikan struktur tampilan ListFragment default. Jika jika Anda ingin menggunakan struktur tampilan default, ganti bagian dari SwipeRefreshLayout dan perilaku ListFragment.

Menambahkan tindakan refresh ke panel tindakan

Menambahkan tindakan refresh ke panel tindakan aplikasi sehingga pengguna yang tidak dapat melakukan gestur geser bisa memicu update manual. Misalnya, pengguna dengan kebutuhan aksesibilitas dapat memicu tindakan panel tindakan menggunakan perangkat eksternal, seperti {i>keyboard<i} 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 berasumsi tindakan tombol muat ulang berbeda dengan tindakan geser untuk refresh. Membuat tindakan refresh yang tidak terlalu mencolok di bilah tindakan mendorong pengguna untuk melakukan pembaruan manual dengan gerakan usap sambil mempertahankan opsi yang dapat diakses di mana 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>