Cómo agregar el gesto de deslizar para actualizar a tu app

El patrón de deslizar para actualizar la interfaz de usuario se implementa completamente dentro del SwipeRefreshLayout , que detecta el deslizamiento vertical, muestra una barra de progreso distintiva y activa la devolución de llamada en tu app. Para habilitar este comportamiento, agrega el widget a tu archivo de diseño como elemento superior de una 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 actualización acción en el área ampliada de la barra de acciones para que los usuarios que no puedan usar el gesto de deslizar puedan activar una actualización manual con un dispositivo externo.

Cómo agregar la dependencia deSwipeRefreshLayout

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 para actualizar a una app existente, agrega SwipeRefreshLayout como el superior de un solo ListView o GridView. SwipeRefreshLayout solo admite un único elemento ListView o GridView hijo/a.

En el siguiente ejemplo, se muestra cómo agregar el widget SwipeRefreshLayout a una archivo de diseño existente que contiene 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>

También puedes usar el widget de SwipeRefreshLayout con una ListFragment Si el botón contiene un ListView con el ID "@android:id/list", el la funcionalidad de deslizar para actualizar se admite automáticamente. Sin embargo, si declaras explícitamente De esta manera, ListView reemplaza la estructura de vistas ListFragment predeterminada. Si Si deseas usar la estructura de vistas predeterminada, anula partes de SwipeRefreshLayout. y ListFragment.

Cómo agregar una acción de actualizar 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 puedan 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 y pads direccionales.

Agrega la acción de actualizar como un elemento de menú, en lugar de como un botón. Para ello, configura el atributo android:showAsAction=never Si muestras la acción como un botón, los usuarios podrían suponer la acción del botón para actualizar es diferente de la acción de deslizar para actualizar. Cómo realizar la acción de actualizar menos visible en la barra de acciones, alienta a los usuarios a realizar actualizaciones manuales con gestos de deslizamiento y, al mismo tiempo, mantener la opción accesible donde los usuarios de pads direccionales la buscan.

En el siguiente código, se muestra cómo agregar la acción de deslizar para actualizar al á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>