Aggiungi scorrimento per aggiornare alla tua app

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

Questa pagina mostra come aggiungere il widget a un layout esistente. Viene inoltre spiegato come aggiungere un aggiornamento un'azione sull'area di overflow della barra delle azioni in modo che gli utenti che non possono utilizzare il gesto di scorrimento possano attivare un'azione aggiornamento manuale con un dispositivo esterno.

Aggiungi dipendenza SlideRefreshLayout

Per usare SwipeRefreshLayout nella tua app, aggiungi la seguente dipendenza a build.gradle file:

Alla moda

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 aggiornamento tramite scorrimento a un'app esistente, aggiungi SwipeRefreshLayout come principale di un singolo ListView o GridView. SwipeRefreshLayout supporta un solo ListView o GridView figlio.

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 usare il widget SwipeRefreshLayout con un ListFragment. Se contiene un elemento ListView con ID "@android:id/list", la funzionalità di scorrimento per aggiornare è supportata automaticamente. Tuttavia, dichiarare in modo esplicito In questo modo, ListView sostituisce la struttura di visualizzazione ListFragment predefinita. Se vuoi utilizzare la struttura di visualizzazione predefinita, sostituisci parti di SwipeRefreshLayout e ListFragment.

Aggiungere un'azione di aggiornamento alla barra delle azioni

Aggiungi un'azione di aggiornamento alla barra delle azioni dell'app in modo che gli utenti che non possono eseguire i gesti di scorrimento possano attivare un aggiornamento manuale. Ad esempio, gli utenti con esigenze di accessibilità possono attivare le azioni della barra delle azioni usando 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 l'azione del pulsante di aggiornamento è diversa da quella del pulsante di scorrimento. Esecuzione dell'azione di aggiornamento meno visibile nella barra delle azioni, incoraggia gli utenti a eseguire aggiornamenti manuali con i gesti di scorrimento mantenendo l'opzione accessibile dove gli utenti del D-pad la cercano.

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