Aggiungi scorrimento per aggiornare alla tua app

Il pattern dell'interfaccia utente di scorrimento per aggiornare viene implementato interamente all'interno del widget SwipeRefreshLayout, che rileva lo scorrimento verticale, mostra una barra di avanzamento distintiva e attiva metodi di callback nella tua app. Attiva questo comportamento aggiungendo il widget al file di layout come principale di un ListView o GridView e implementando il comportamento di aggiornamento che viene richiamato quando l'utente scorre.

Questa pagina mostra come aggiungere il widget a un layout esistente. Mostra inoltre 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.

Aggiungi la dipendenza SwipeUpdatesLayout

Per utilizzare SwipeRefreshLayout nella tua app, aggiungi la dipendenza seguente al file build.gradle:

Trendy

dependencies {
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01")
}

Aggiungi il widget SwiperefreshLayout

Per aggiungere il widget di scorrimento per aggiornare a un'app esistente, aggiungi SwipeRefreshLayout come principale di un singolo elemento ListView o GridView. SwipeRefreshLayout supporta solo un singolo 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 elemento ListView con ID "@android:id/list", la funzionalità di scorrimento per aggiornare è automaticamente supportata. Tuttavia, una dichiarazione esplicita di ListView in questo modo prevale sulla struttura della vista ListFragment predefinita. Se vuoi utilizzare la struttura di visualizzazione predefinita, esegui l'override delle parti del comportamento 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 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 sotto forma di pulsante, gli utenti potrebbero presumere che l'azione del pulsante di aggiornamento sia diversa dall'azione di scorrimento per aggiornare. Se l'azione di aggiornamento è meno evidente nella barra delle azioni, gli utenti sono incoraggiati a eseguire aggiornamenti manuali con gesti di scorrimento, mantenendo al contempo l'opzione accessibile dove gli utenti del D-pad la cercano.

Il codice seguente mostra come aggiungere l'azione di scorrimento 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>