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>