Das UI-Muster „Aktualisieren durch Wischen“ wird vollständig im Widget SwipeRefreshLayout implementiert. Dieses erkennt das vertikale Wischen, zeigt eine unverwechselbare Fortschrittsanzeige an und löst Callback-Methoden in Ihrer App aus. Aktivieren Sie dieses Verhalten, indem Sie das Widget als übergeordnetes Element von ListView oder GridView zu Ihrer Layoutdatei hinzufü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:
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 „Aktualisieren durch Wischen“ einer vorhandenen App hinzufügen möchten, fügen Sie SwipeRefreshLayout als übergeordnetes Element von ListView oder GridView hinzu.
SwipeRefreshLayout unterstützt nur ein untergeordnetes Element vom Typ ListView oder GridView.
Das folgende Beispiel zeigt, wie Sie das Widget SwipeRefreshLayout einer vorhandenen Layoutdatei mit einem 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 Widget SwipeRefreshLayout auch mit einem ListFragment verwenden. Wenn das Layout ein ListView mit der ID "@android:id/list" enthält, wird die Funktion „Aktualisieren durch Wischen“ automatisch unterstützt. Wenn Sie ListView jedoch auf diese Weise explizit deklarieren, wird die Standardansichtsstruktur von ListFragment überschrieben. 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 Wischgesten ausführen können, eine manuelle Aktualisierung auslösen können. Nutzer mit Barrierefreiheitsproblemen können beispielsweise Aktionsleistenaktionen mit externen Geräten wie Tastaturen und D-Pads auslösen.
Fügen Sie die Aktualisierungsaktion als Menüelement und nicht als Schaltfläche hinzu, indem Sie das Attribut android:showAsAction=never festlegen. Wenn Sie die Aktion als Schaltfläche anzeigen, gehen Nutzer möglicherweise davon aus, dass sich die Aktion der Aktualisierungsschaltfläche von der Aktion „Aktualisieren durch Wischen“ unterscheidet. Wenn Sie die Aktualisierungsaktion in der Aktionsleiste weniger auffällig gestalten, werden Nutzer dazu angeregt, manuelle Aktualisierungen mit Wischgesten durchzuführen. Gleichzeitig bleibt die barrierefreie Option erhalten, die Nutzer mit Steuerkreuz erwarten.
Der folgende Code zeigt, wie Sie dem Überlaufbereich die Aktion „Aktualisieren durch Wischen“ 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>