Le modèle d'interface utilisateur par balayage pour actualiser est implémenté entièrement dans le
SwipeRefreshLayout
widget, qui détecte le balayage vertical, affiche une barre de progression distincte et déclenche un rappel
dans votre application. Activez ce comportement en ajoutant le widget à votre fichier de mise en page en tant que parent de
un ListView
ou
GridView
et implémenter
Comportement d'actualisation invoqué lorsque l'utilisateur balaie l'écran.
Cette page explique comment ajouter le widget à une mise en page existante. Elle montre aussi comment ajouter une actualisation à la zone de débordement de la barre d'action afin que les utilisateurs qui ne peuvent pas utiliser le geste de balayage manuellement avec un périphérique externe.
Ajouter une dépendance SwipeRefreshLayout
Pour utiliser SwipeRefreshLayout
dans votre application, ajoutez la dépendance suivante à votre
Fichier build.gradle
:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
Ajouter le widget SwipeRefreshLayout
Pour ajouter le widget "Balayer pour actualiser" à une application existante, ajoutez SwipeRefreshLayout
en tant que
parent d'un seul élément ListView
ou GridView
.
SwipeRefreshLayout
n'accepte qu'un seul ListView
ou
GridView
enfant.
L'exemple suivant montre comment ajouter le widget SwipeRefreshLayout
à une
fichier de mise en page existant contenant 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>
Vous pouvez également utiliser le widget SwipeRefreshLayout
avec une
ListFragment
Si le
contient un élément ListView
avec l'ID "@android:id/list"
, l'élément
la fonctionnalité de balayage pour actualiser est automatiquement prise en charge. Toutefois, en déclarant explicitement
De cette façon, ListView
remplace la structure d'affichage ListFragment
par défaut. Si
vous souhaitez utiliser la structure d'affichage par défaut, remplacez certaines parties de SwipeRefreshLayout
.
et ListFragment
.
Ajouter une action d'actualisation à la barre d'action
Ajoutez une action d'actualisation à la barre d'action de votre application afin que les utilisateurs qui ne peuvent pas effectuer de gestes de balayage déclencher une mise à jour manuelle. Par exemple, les utilisateurs ayant des besoins en termes d'accessibilité peuvent déclencher des actions dans la barre d'action. à l'aide de périphériques externes, tels que des claviers et des pavés directionnels.
Ajoutez l'action d'actualisation en tant qu'élément de menu plutôt qu'en tant que bouton en définissant l'attribut
android:showAsAction=never
Si vous affichez l'action sous la forme d'un bouton, les utilisateurs peuvent supposer
l'action du bouton d'actualisation est différente
de l'action de balayage pour actualiser. Effectuer l'action d'actualisation
moins visible dans la barre d'action encourage les utilisateurs à effectuer des mises à jour manuelles à l'aide de gestes de balayage.
tout en conservant l'option d'accessibilité
où les utilisateurs de pavés directionnels la recherchent.
Le code suivant montre comment ajouter l'action "Balayer pour actualiser" à la zone de débordement:
<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>