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

Wzorzec interfejsu „Przesuwanie w celu odświeżenia” jest zaimplementowany w całości SwipeRefreshLayout widżet, który wykrywa przesuwanie w pionie, wyświetla charakterystyczny pasek postępu i wywołuje wywołanie zwrotne. w swojej aplikacji. Włącz to zachowanie, dodając widżet do pliku układu jako element nadrzędny ListView lub GridView i wdrożenie odświeżanie wywoływane po przesunięciu palcem przez użytkownika.

Na tej stronie dowiesz się, jak dodać widżet do istniejącego układu. Pokazuje też, jak dodać odświeżanie. w obszarze przepełnienia paska działań, aby użytkownicy, którzy nie mogą używać gestu przesuwania, ręcznie aktualizować przy użyciu urządzenia zewnętrznego.

Dodaj zależność StackdriverRefreshLayout

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

Odlotowe

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

Kotlin

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

Dodaj widżet Przesuwanie odświeżaniaUkładu

Aby dodać widżet „Przesuń, aby odświeżyć” do istniejącej aplikacji, dodaj SwipeRefreshLayout jako element nadrzędny pojedynczego elementu ListView lub GridView. SwipeRefreshLayout obsługuje tylko jeden obiekt ListView lub GridView dziecko.

Poniższy przykład pokazuje, jak dodać widżet SwipeRefreshLayout do istniejący plik układu zawierający 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 „przesuń, aby odświeżyć” jest obsługiwana automatycznie. Wyraźne zadeklarowanie jednak, W ten sposób ListView zastępuje domyślną strukturę widoku danych ListFragment. Jeśli jeśli chcesz użyć domyślnej struktury widoku, zastąp części obiektu SwipeRefreshLayout i ListFragment.

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

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

Dodaj działanie odświeżania jako pozycję menu, a nie jako przycisk, ustawiając atrybut android:showAsAction=never Jeśli wyświetlasz działanie jako przycisk, użytkownicy mogą założyć, działanie przycisku odświeżania różni się od działania polegającego na przesunięciu palcem, aby odświeżyć. Przeprowadzam odświeżenie mniej widoczne na pasku działań zachęca użytkowników do ręcznego aktualizowania informacji za pomocą gestów przesuwania. z zachowaniem możliwości jej znalezienia przez użytkowników padów kierunkowych.

Ten kod pokazuje, jak dodać działanie „przesuń, aby odświeżyć” do rozszerzonego obszaru:

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