Aggiungi scorrimento per aggiornare alla tua app

Prova Compose
Jetpack Compose è il toolkit UI consigliato per Android. Scopri come utilizzare la funzionalità Premi per aggiornare in Compose.

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>