Dodaj do aplikacji funkcję odświeżania przez przesuwanie palcem

Wzorzec interfejsu użytkownika „przesuń, aby odświeżyć” jest zaimplementowany w całości w widżecie SwipeRefreshLayout, który wykrywa przesunięcie pionowe, wyświetla charakterystyczny pasek postępu i aktywuje metody wywołania zwrotnego w aplikacji. Aby włączyć to działanie, dodaj widżet do pliku układu jako obiekt nadrzędny elementu ListView lub GridView i zaimplementuj działanie odświeżania wywoływane po przesunięciu palcem przez użytkownika.

Na tej stronie dowiesz się, jak dodać widżet do istniejącego układu. Pokazuje on też, jak dodać działanie odświeżania do dodatkowego obszaru paska działań, tak aby użytkownicy, którzy nie mogą używać gestu przesuwania, mogli uruchomić aktualizację ręczną na urządzeniu zewnętrznym.

Dodaj zależność przesunięciem odświeżania

Aby użyć SwipeRefreshLayout w aplikacji, dodaj tę zależność do pliku build.gradle:

Odlotowy

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

Kotlin

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

Dodawanie widżetu ScrollOdświeżUkład

Aby dodać widżet odświeżania przez przesuwanie palcem w dotychczasowej aplikacji, dodaj element SwipeRefreshLayout jako element nadrzędny ListView lub GridView. Usługa SwipeRefreshLayout obsługuje tylko 1 element podrzędny ListView lub GridView.

Ten przykład pokazuje, jak dodać widżet SwipeRefreshLayout do istniejącego pliku układu zawierającego 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>

Możesz też użyć widżetu SwipeRefreshLayout z ListFragment. Jeśli układ zawiera element ListView o identyfikatorze "@android:id/list", funkcja przesuwania, aby odświeżyć, jest obsługiwana automatycznie. Jednak jawne zadeklarowanie w ten sposób właściwości ListView zastępuje domyślną strukturę widoku ListFragment. Jeśli chcesz użyć domyślnej struktury widoku, zastąp części działań SwipeRefreshLayout i ListFragment.

Dodawanie działania odświeżania do paska działań

Dodaj działanie odświeżania do paska działań aplikacji, aby użytkownicy, którzy nie mogą wykonywać gestów przesuwania, mogli ręcznie uruchamiać aktualizację. Na przykład użytkownicy z ułatwieniami dostępu mogą uruchamiać działania na pasku działań za pomocą urządzeń zewnętrznych, takich jak klawiatury i pady kierunkowe.

Dodaj działanie odświeżania jako element menu, a nie jako przycisk, ustawiając atrybut android:showAsAction=never. Jeśli wyświetlisz działanie jako przycisk, użytkownicy mogą uznać, że działanie przycisku odświeżania różni się od działania przesuwania, by odświeżyć. Niewyraźne powiadomienia o aktualizacji na pasku działań zachęcają użytkowników do ręcznego wykonywania aktualizacji za pomocą gestów przesuwania, a jednocześnie są dostępne w momencie, gdy użytkownicy pada kierunkowego mogą ich szukać.

Poniższy kod pokazuje, jak dodać działanie przesuwania, aby odświeżyć do obszaru rozszerzonego:

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