Adicionar ao app o recurso de deslizar para atualizar

O padrão da interface do usuário de deslizar para atualizar é implementado inteiramente dentro do SwipeRefreshLayout widget, que detecta o deslizamento vertical, exibe uma barra de progresso distinta e aciona um callback métodos no seu app. Para ativar esse comportamento, adicione o widget ao arquivo de layout como pai do um ListView ou GridView e implementar o de atualização que é invocado quando o usuário desliza.

Esta página mostra como adicionar o widget a um layout existente. Ele também mostra como adicionar uma atualização à área flutuante da barra de ações para que os usuários que não podem usar o gesto de deslizar possam acionar uma atualização manual com um dispositivo externo.

Adicionar a dependência SwipeRefreshLayout

Para usar SwipeRefreshLayout no seu app, adicione a dependência abaixo ao seu Arquivo build.gradle:

Groovy

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

Kotlin

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

Adicionar o widget SwipeRefreshLayout

Para adicionar o widget de deslizar para atualizar a um app, adicione SwipeRefreshLayout como o pai de uma única ListView ou GridView. SwipeRefreshLayout só oferece suporte a uma única ListView ou GridView criança.

O exemplo a seguir demonstra como adicionar o widget SwipeRefreshLayout a uma arquivo de layout existente que contém um 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>

Também é possível usar o widget SwipeRefreshLayout com um ListFragment. Se o layout contém uma ListView com o ID "@android:id/list", a a funcionalidade de deslizar para atualizar é suportada automaticamente. No entanto, declarar explicitamente o Dessa forma, ListView substitui a estrutura de visualização ListFragment padrão. Se Se quiser usar a estrutura de visualização padrão, substitua partes do SwipeRefreshLayout e ListFragment.

Adicionar uma ação de atualização à barra de ações

Adicione uma ação de atualização à barra de ações do app para que os usuários que não podem realizar gestos de deslizar possam acionar uma atualização manual. Por exemplo, usuários com necessidades de acessibilidade podem acionar ações da barra de ações usando dispositivos externos, como teclados e botões direcionais.

Adicione a ação de atualização como um item de menu, não como um botão, definindo o atributo android:showAsAction=never: Se você exibir a ação como um botão, os usuários podem presumir a ação do botão atualizar é diferente da ação de deslizar para atualizar. Como fazer a ação de atualização menos evidente na barra de ações incentiva os usuários a realizar atualizações manuais com gestos de deslizar mantendo a opção acessível que os usuários do botão direcional a procuram.

O código a seguir demonstra como adicionar a ação de deslizar para atualizar à área flutuante:

<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>