Pola antarmuka pengguna geser-untuk-memuat ulang diimplementasikan sepenuhnya dalam
widget
SwipeRefreshLayout
, yang mendeteksi geser vertikal, menampilkan status progres yang berbeda, dan memicu metode
callback di 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
:
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 memuat ulang 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 memuat ulang akan otomatis didukung. Namun, mendeklarasikan
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 menetapkan atribut
android:showAsAction=never
. Jika Anda menampilkan tindakan sebagai tombol, pengguna mungkin menganggap
tindakan tombol refresh berbeda dengan tindakan geser untuk memuat ulang. Membuat tindakan refresh
tidak terlalu mencolok di panel tindakan 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 memuat ulang 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>