Das Muster der Benutzeroberfläche zum Aktualisieren durch Wischen wird vollständig im SwipeRefreshLayout
-Widget implementiert, das vertikales Wischen erkennt, eine eindeutige Fortschrittsanzeige anzeigt und Callback-Methoden in Ihrer App auslöst. Sie können dieses Verhalten aktivieren, indem Sie das Widget als übergeordnetes Element von ListView
oder GridView
in Ihre Layoutdatei einfügen und das Aktualisierungsverhalten implementieren, das ausgelöst wird, wenn der Nutzer wischt.
Auf dieser Seite wird beschrieben, wie Sie das Widget einem vorhandenen Layout hinzufügen. Außerdem wird gezeigt, wie Sie dem Überlaufbereich der Aktionsleiste eine Aktualisierungsaktion hinzufügen, damit Nutzer, die die Wischgeste nicht verwenden können, eine manuelle Aktualisierung mit einem externen Gerät auslösen können.
SwipeRefreshLayout-Abhängigkeit hinzufügen
Wenn Sie SwipeRefreshLayout
in Ihrer App verwenden möchten, fügen Sie der Datei build.gradle
die folgende Abhängigkeit hinzu:
Groovig
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
Widget "SwipeRefreshLayout" hinzufügen
Wenn Sie das Widget zum Aktualisieren durch Wischen einer vorhandenen App hinzufügen möchten, fügen Sie SwipeRefreshLayout
als übergeordnetes Element einer einzelnen ListView
oder GridView
hinzu.
SwipeRefreshLayout
unterstützt nur ein einzelnes ListView
- oder GridView
-untergeordnetes Element.
Das folgende Beispiel zeigt, wie Sie das SwipeRefreshLayout
-Widget einer vorhandenen Layoutdatei mit einem ListView
-Element hinzufügen:
<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>
Sie können das SwipeRefreshLayout
-Widget auch mit einer ListFragment
verwenden. Wenn das Layout eine ListView
mit der ID "@android:id/list"
enthält, wird die Funktion zum Aktualisieren automatisch unterstützt. Diese explizite Deklaration des ListView
ersetzt jedoch die standardmäßige Ansichtsstruktur ListFragment
. Wenn Sie die Standardansichtsstruktur verwenden möchten, überschreiben Sie Teile des Verhaltens SwipeRefreshLayout
und ListFragment
.
Aktualisierungsaktion zur Aktionsleiste hinzufügen
Fügen Sie der Aktionsleiste Ihrer App eine Aktualisierungsaktion hinzu, damit Nutzer, die keine Wischgesten ausführen können, ein manuelles Update auslösen können. Nutzer mit Anforderungen an Bedienungshilfen können Aktionen auf der Aktionsleiste beispielsweise mit externen Geräten wie Tastaturen und Steuerkreuzen auslösen.
Fügen Sie die Aktualisierungsaktion als Menüpunkt und nicht als Schaltfläche hinzu. Legen Sie dazu das Attribut android:showAsAction=never
fest. Wenn Sie die Aktion als Schaltfläche anzeigen lassen, nehmen Nutzer möglicherweise an, dass sich die Aktion der Schaltfläche zum Aktualisieren von der Aktion „Zum Aktualisieren wischen“ unterscheidet. Wenn die Aktualisierungsaktion in der Aktionsleiste weniger deutlich sichtbar ist, werden Nutzer dazu ermuntert, manuelle Aktualisierungen mit Wischgesten auszuführen. Die Option, bei der Nutzer des Steuerkreuzes danach suchen, bleibt dabei erhalten.
Der folgende Code zeigt, wie die Aktion zum Aktualisieren durch Wischen zum Überlaufbereich hinzugefügt wird:
<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>