O padrão da interface do usuário "deslizar para atualizar" é totalmente implementado no widget
SwipeRefreshLayout
, que detecta o deslizamento vertical, exibe uma barra de progresso característica e aciona métodos de callback
no app. Ative esse comportamento adicionando o widget ao arquivo de layout como pai de
um ListView
ou
GridView
e implementando o
comportamento de atualização que é invocado quando o usuário desliza.
Esta página mostra como adicionar o widget a um layout existente. Ela também mostra como adicionar uma ação de atualização à área flutuante da barra de ações para que os usuários que não conseguem usar o gesto de deslizar possam acionar uma atualização manual com um dispositivo externo.
Adicionar a dependência SwipeRefreshLayout
Para usar o SwipeRefreshLayout
no app, adicione a seguinte dependência ao
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 existente, adicione SwipeRefreshLayout
como
pai de uma única ListView
ou GridView
.
SwipeRefreshLayout
é compatível apenas com um único filho ListView
ou
GridView
.
O exemplo a seguir demonstra como adicionar o widget SwipeRefreshLayout
a um
arquivo de layout 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 contiver um ListView
com o ID "@android:id/list"
, a
funcionalidade de deslizar para atualizar será automaticamente compatível. No entanto, declarar explicitamente o
ListView
dessa maneira substitui a estrutura de visualização ListFragment
padrão. Se
você quiser usar a estrutura de visualização padrão, modifique partes do comportamento 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 conseguem usar o gesto de deslizar possam acionar uma atualização manual. Por exemplo, usuários com necessidades de acessibilidade podem acionar a 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, e não como um botão, definindo o atributo
android:showAsAction=never
. Se você mostrar a ação como um botão, os usuários poderão presumir
que a ação do botão de atualização é diferente da ação "deslizar para atualizar". Tornar 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,
ao mesmo tempo em que mantém a opção acessível em um local onde os usuários do botão direcional a procuram.
O código a seguir demonstra como adicionar a ação "deslizar para atualizar" na á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>