Il pattern dell'interfaccia utente di scorrimento per l'aggiornamento viene implementato interamente all'interno del
SwipeRefreshLayout
widget, che rileva lo scorrimento verticale, mostra una barra di avanzamento distintiva e attiva i metodi di callback
nella tua app. Attiva questo comportamento aggiungendo il widget al file di layout come elemento principale di
un ListView
o
GridView
e implementando il
comportamento di aggiornamento invocato quando l'utente scorre.
Questa pagina mostra come aggiungere il widget a un layout esistente. Mostra anche come aggiungere un'azione di aggiornamento all'area di overflow dell'apposita barra in modo che gli utenti che non possono utilizzare il gesto di scorrimento possano attivare un aggiornamento manuale con un dispositivo esterno.
Aggiungi la dipendenza SwipeRefreshLayout
Per utilizzare SwipeRefreshLayout
nella tua app, aggiungi la seguente dipendenza al
build.gradle
file:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
Aggiungere il widget SwipeRefreshLayout
Per aggiungere il widget di aggiornamento con scorrimento a un'app esistente, aggiungi SwipeRefreshLayout
come elemento principale di un singolo ListView
o GridView
.
SwipeRefreshLayout
supporta un solo elemento figlio ListView
o
GridView
.
L'esempio seguente mostra come aggiungere il widget SwipeRefreshLayout
a un
file di layout esistente contenente un 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>
Puoi anche utilizzare il widget SwipeRefreshLayout
con un
ListFragment
. Se il layout contiene un ListView
con l'ID "@android:id/list"
, la funzionalità di scorrimento per aggiornare è supportata automaticamente. Tuttavia, dichiarando esplicitamente ListView
in questo modo, la struttura della visualizzazione ListFragment
predefinita viene sostituita. Se
vuoi utilizzare la struttura della visualizzazione predefinita, sostituisci parti del comportamento di SwipeRefreshLayout
e ListFragment
.
Aggiungere un'azione di aggiornamento all'apposita barra
Aggiungi un'azione di aggiornamento alla barra delle app in modo che gli utenti che non possono eseguire gesti di scorrimento possano attivare un aggiornamento manuale. Ad esempio, gli utenti con esigenze di accessibilità possono attivare le azioni della barra delle azioni utilizzando dispositivi esterni, come tastiere e pad direzionali.
Aggiungi l'azione di aggiornamento come elemento di menu anziché come pulsante impostando l'attributo
android:showAsAction=never
. Se mostri l'azione come un pulsante, gli utenti potrebbero supporre che l'azione del pulsante di aggiornamento sia diversa dall'azione di scorrimento per l'aggiornamento. Rendere meno visibile l'azione di aggiornamento nella barra delle azioni incoraggia gli utenti a eseguire aggiornamenti manuali con gesti di scorrimento, mantenendo l'opzione accessibile dove gli utenti del D-pad la cercano.
Il seguente codice mostra come aggiungere l'azione di scorrimento per l'aggiornamento all'area di overflow:
<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>