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>