O padrão da interface do usuário "deslizar para atualizar" é implementado inteiramente no widget
SwipeRefreshLayout
,
que detecta o gesto de deslizar vertical, mostra uma barra de progresso distinta e aciona métodos de
callback no app. Ative esse comportamento adicionando o widget ao arquivo de layout como o pai de
uma ListView
ou
GridView
e implementando o
comportamento de atualização que é invocado quando o usuário desliza.
Nesta página, mostramos como adicionar o widget a um layout existente. Ele 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 possam usar o gesto de deslizar possam acionar uma atualização manual com um dispositivo externo.
Adicionar dependência SwipeRefreshLayout
Para usar SwipeRefreshLayout
no seu app, adicione a dependência abaixo 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, adicione SwipeRefreshLayout
como
pai de uma única ListView
ou GridView
.
SwipeRefreshLayout
oferece suporte apenas a um único filho ListView
ou
GridView
.
O exemplo abaixo demonstra como adicionar o widget SwipeRefreshLayout
a um
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>
Você também pode usar o widget SwipeRefreshLayout
com uma
ListFragment
. Se o
layout tiver um ListView
com o ID "@android:id/list"
, a
funcionalidade de deslizar para atualizar terá suporte automático. No entanto, declarar explicitamente
ListView
dessa maneira substitui a estrutura de visualização ListFragment
padrão. Se
você quiser usar a estrutura de visualização padrão, substitua 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 seu app para que os usuários que não possam 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, e não como um botão, definindo o atributo
android:showAsAction=never
. Se a ação for exibida como um botão, os usuários poderão presumir
que a ação do botão de atualização é diferente da ação de 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,
mantendo a opção acessível em que os usuários do botão direcional procuram por ela.
O código a seguir demonstra como adicionar a ação de 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>