Menambahkan geser untuk refresh ke aplikasi

Mencoba cara Compose
Jetpack Compose adalah toolkit UI yang direkomendasikan untuk Android. Pelajari cara menarik untuk memuat ulang di Compose.

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

Halaman ini menunjukkan cara menambahkan widget ke tata letak yang ada. Tutorial 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 Anda:

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 turunan ListView atau GridView.

Contoh berikut menunjukkan cara menambahkan widget SwipeRefreshLayout ke file tata letak yang sudah 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, menyatakan ListView secara eksplisit 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 muat ulang 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.

Tambahkan 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. Dengan membuat tindakan refresh tidak terlalu mencolok di panel tindakan, Anda bisa mendorong pengguna untuk melakukan update manual dengan gestur geser sambil tetap mempertahankan opsi yang dapat diakses di tempat pengguna D-pad akan 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>