Das Muster „Wischen zum Aktualisieren“ der Benutzeroberfläche wird vollständig im SwipeRefreshLayout
-Widget implementiert, das das vertikale Wischen erkennt, eine eindeutige Fortschrittsanzeige anzeigt und Callback-Methoden in Ihrer App auslöst. Aktivieren Sie dieses Verhalten, indem Sie das Widget Ihrer Layoutdatei als übergeordnetes Element eines ListView
oder GridView
hinzufügen und das Aktualisierungsverhalten implementieren, das beim Wischen des Nutzers aufgerufen wird.
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:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
SwipeRefreshLayout-Widget hinzufügen
Wenn Sie das Widget „Durch Wischen aktualisieren“ einer vorhandenen App hinzufügen möchten, fügen Sie SwipeRefreshLayout
als übergeordnetes Element zu einem einzelnen ListView
oder GridView
hinzu.
SwipeRefreshLayout
unterstützt nur ein untergeordnetes ListView
oder GridView
.
Im folgenden Beispiel wird gezeigt, wie Sie das SwipeRefreshLayout
-Widget einer vorhandenen Layoutdatei mit einer ListView
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 einem ListFragment
verwenden. Wenn das Layout ein ListView
mit der ID "@android:id/list"
enthält, wird die Funktion „Wischen zum Aktualisieren“ automatisch unterstützt. Wenn Sie die ListView
-Ansicht jedoch so explizit deklarieren, wird die Standardstruktur der ListFragment
-Ansicht ersetzt. Wenn Sie die Standardansichtsstruktur verwenden möchten, überschreiben Sie Teile des Verhaltens von SwipeRefreshLayout
und ListFragment
.
Aktionsleiste eine Aktualisierungsaktion hinzufügen
Fügen Sie der Aktionsleiste Ihrer App eine Aktualisierungsaktion hinzu, damit Nutzer, die keine Wischbewegungen ausführen können, eine manuelle Aktualisierung auslösen können. Nutzer mit Beeinträchtigungen können beispielsweise Aktionen der Aktionsleiste über externe Geräte wie Tastaturen und D-Pads auslösen.
Wenn Sie die Aktualisierungsaktion als Menüpunkt statt als Schaltfläche hinzufügen möchten, legen Sie das Attribut android:showAsAction=never
fest. Wenn Sie die Aktion als Schaltfläche anzeigen, gehen Nutzer möglicherweise davon aus, dass die Aktion der Schaltfläche zum Aktualisieren sich von der Aktion „Wischen zum Aktualisieren“ unterscheidet. Wenn die Aktualisierungsaktion in der Aktionsleiste weniger auffällig ist, werden Nutzer dazu angeregt, manuelle Aktualisierungen mit Wischgesten durchzuführen. Gleichzeitig bleibt die barrierefreie Option dort erhalten, wo Nutzer mit D-Pad danach suchen.
Im folgenden Code wird gezeigt, wie Sie dem Überlaufbereich die Wisch-zum-Aktualisieren-Aktion hinzufügen:
<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>