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>