Aktualisieren durch Wischen in App hinzufügen

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>