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

Попробуйте способ создания композиций.
Jetpack Compose — рекомендуемый набор инструментов для создания пользовательского интерфейса для Android. Узнайте, как обновить страницу с помощью жеста «потянуть вниз» в Compose.

Шаблон пользовательского интерфейса «обновление по свайпу» полностью реализован в виджете 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 с ID "@android:id/list" , функция обновления с помощью свайпа поддерживается автоматически. Однако явное объявление ListView таким образом отменяет структуру представления ListFragment по умолчанию. Если вы хотите использовать структуру представления по умолчанию, переопределите части поведения SwipeRefreshLayout и ListFragment .

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

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

Добавьте действие обновления в качестве пункта меню, а не кнопки, установив атрибут 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>