Добавьте в свое приложение функцию пролистывания для обновления.

Шаблон пользовательского интерфейса «проведите пальцем для обновления» полностью реализован в виджете SwipeRefreshLayout , который обнаруживает вертикальное пролистывание, отображает характерный индикатор выполнения и запускает методы обратного вызова в вашем приложении. Включите это поведение, добавив виджет в файл макета в качестве родительского элемента ListView или GridView и реализовав поведение обновления, которое вызывается, когда пользователь проводит пальцем.

На этой странице показано, как добавить виджет в существующий макет. Также показано, как добавить действие обновления в область переполнения панели действий, чтобы пользователи, которые не могут использовать жест пролистывания, могли запускать обновление вручную с помощью внешнего устройства.

Добавить зависимость SwipeRefreshLayout

Чтобы использовать SwipeRefreshLayout в своем приложении, добавьте следующую зависимость в файл build.gradle :

классный

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

Котлин

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

Добавьте виджет SwipeRefreshLayout.

Чтобы добавить виджет «Проведите для обновления» в существующее приложение, добавьте SwipeRefreshLayout в качестве родительского элемента одного ListView или GridView . SwipeRefreshLayout поддерживает только один дочерний элемент ListView или GridView .

В следующем примере показано, как добавить виджет SwipeRefreshLayout в существующий файл макета, содержащий 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>

Вы также можете использовать виджет SwipeRefreshLayout с ListFragment . Если макет содержит ListView с идентификатором "@android:id/list" , функция пролистывания для обновления поддерживается автоматически. Однако явное объявление ListView таким образом заменяет структуру представления ListFragment по умолчанию. Если вы хотите использовать структуру представления по умолчанию, переопределите части поведения SwipeRefreshLayout и ListFragment .

Добавьте действие обновления на панель действий

Добавьте действие обновления на панель действий вашего приложения, чтобы пользователи, которые не могут выполнять жесты смахивания, могли запустить обновление вручную. Например, пользователи с потребностями в специальных возможностях могут запускать действия панели действий с помощью внешних устройств, таких как клавиатуры и крестовины.

Добавьте действие обновления в виде пункта меню, а не кнопки, установив атрибут android:showAsAction=never . Если вы отобразите действие в виде кнопки, пользователи могут подумать, что действие кнопки обновления отличается от действия пролистывания для обновления. Делая действие обновления менее заметным на панели действий, пользователи могут выполнять обновления вручную с помощью жестов смахивания, сохраняя при этом доступную опцию, где ее ищут пользователи D-pad.

Следующий код демонстрирует, как добавить действие пролистывания для обновления в область переполнения:

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