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>