El patrón de interfaz de usuario de deslizar para actualizar se implementa por completo dentro del widget SwipeRefreshLayout
, que detecta el deslizamiento vertical, muestra una barra de progreso distintiva y activa los métodos de devolución de llamada en tu app. Para habilitar este comportamiento, agrega el widget a tu archivo de diseño como elemento superior de un ListView
o GridView
y, luego, implementa el comportamiento de actualización que se invoca cuando el usuario desliza el dedo.
En esta página, se muestra cómo agregar el widget a un diseño existente. También se muestra cómo agregar una acción de actualización al área ampliada de la barra de acciones para que los usuarios que no pueden usar el gesto de deslizar con el dedo puedan activar una actualización manual con un dispositivo externo.
Agrega la dependencia de SwipeRefreshLayout
Para usar SwipeRefreshLayout
en tu app, agrega la siguiente dependencia a tu archivo build.gradle
:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
Cómo agregar el widget de SwipeRefreshLayout
Para agregar el widget de deslizar el dedo para actualizar a una app existente, incluye SwipeRefreshLayout
como elemento superior de una ListView
o GridView
única.
SwipeRefreshLayout
solo admite un elemento ListView
o GridView
secundario.
En el siguiente ejemplo, se muestra cómo agregar el widget de SwipeRefreshLayout
a un archivo de diseño existente que contiene una 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>
También puedes usar el widget de SwipeRefreshLayout
con un ListFragment
. Si el diseño contiene una ListView
con el ID "@android:id/list"
, la funcionalidad "deslizar para actualizar" se admitirá automáticamente. Sin embargo, si declaras explícitamente la ListView
de esta manera, se sustituirá la estructura de vistas de ListFragment
predeterminada. Si quieres usar la estructura de vistas predeterminada, anula partes del comportamiento de SwipeRefreshLayout
y ListFragment
.
Cómo agregar una acción de actualización a la barra de acciones
Agrega una acción de actualización a la barra de acciones de tu app para que los usuarios que no pueden realizar gestos de deslizamiento puedan activar una actualización manual. Por ejemplo, los usuarios con necesidades de accesibilidad pueden activar acciones de la barra de acciones con dispositivos externos, como teclados o pads direccionales.
Para agregar la acción de actualización como elemento de menú, en lugar de como botón, configura el atributo android:showAsAction=never
. Si muestras la acción como botón, los usuarios podrían asumir que la acción del botón para actualizar es diferente de la acción "deslizar para actualizar". Hacer que la acción de actualizar sea menos evidente en la barra de acciones alienta a los usuarios a que realicen actualizaciones manuales deslizando el dedo y, a su vez, dejar un acceso a la opción en un lugar en el que los usuarios de un pad direccional la buscarían.
En el siguiente código, se muestra cómo agregar la acción de deslizar para actualizar en el área ampliada:
<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>