Il pattern dell'interfaccia utente Premi per aggiornare viene implementato interamente all'interno del widget SwipeRefreshLayout, che rileva lo scorrimento verticale, mostra una barra di avanzamento distintiva e attiva i metodi di callback nella tua app. Per attivare questo comportamento, aggiungi il widget al file di layout come elemento principale di un ListView o GridView e implementa il comportamento di aggiornamento che viene richiamato 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 della barra delle azioni in modo che gli utenti che non possono utilizzare il gesto di scorrimento possano attivare un aggiornamento manuale con un dispositivo esterno.
Aggiungere la dipendenza SwipeRefreshLayout
Per utilizzare SwipeRefreshLayout nella tua app, aggiungi la seguente dipendenza al file build.gradle:
Alla moda
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 Premi per aggiornare a un'app esistente, aggiungi SwipeRefreshLayout come elemento principale di un singolo ListView o GridView.
SwipeRefreshLayout supporta solo un elemento secondario 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à Premi per aggiornare è supportata automaticamente. Tuttavia, la dichiarazione esplicita di ListView in questo modo sostituisce la struttura di visualizzazione ListFragment predefinita. Se vuoi utilizzare la struttura di visualizzazione predefinita, sostituisci parti del comportamento di SwipeRefreshLayout e ListFragment.
Aggiungere un'azione di aggiornamento alla barra delle azioni
Aggiungi un'azione di aggiornamento alla barra delle azioni della tua 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 D-pad.
Aggiungi l'azione di aggiornamento come voce di menu, anziché come pulsante, impostando l'attributo android:showAsAction=never. Se visualizzi l'azione come pulsante, gli utenti potrebbero presumere che l'azione del pulsante di aggiornamento sia diversa dall'azione Premi per aggiornare. Rendere l'azione di aggiornamento meno visibile nella barra delle azioni incoraggia gli utenti a eseguire aggiornamenti manuali con gesti di scorrimento, mantenendo al contempo l'opzione accessibile in cui gli utenti D-pad la cercano.
Il seguente codice mostra come aggiungere l'azione Premi per aggiornare 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>