Tastaturnavigation unterstützen

Zusätzlich zu Soft-Eingabemethoden, z. B. Bildschirmtastaturen, unterstützt Android physische Tastaturen, die an das Gerät angeschlossen sind. Eine Tastatur bietet einen praktischen Modus für die Texteingabe und eine Möglichkeit für Nutzer, in Ihrer App zu navigieren und mit ihr zu interagieren. Obwohl die meisten Handheld-Geräte wie Smartphones die Berührung als primäre Interaktionsform verwenden, sind Tablets und ähnliche Geräte beliebt und viele Nutzer verwenden gern Tastaturzubehör.

Da immer mehr Android-Geräte diese Art von Nutzung bieten, ist es wichtig, dass du deine App so optimierst, dass sie Interaktionen über eine Tastatur unterstützt. In diesem Dokument wird beschrieben, wie Sie die Navigation mit einer Tastatur verbessern können.

App testen

Unter Umständen können Nutzer bereits über eine Tastatur in deiner App navigieren, da das Android-System die meisten erforderlichen Verhaltensweisen standardmäßig aktiviert.

Alle vom Android-Framework bereitgestellten interaktiven Widgets, z. B. Button und EditText, sind fokussierbar. Das bedeutet, dass Nutzer mit Steuergeräten wie einem Steuerkreuz oder einer Tastatur navigieren können und jedes Widget leuchtet oder auf andere Weise seine Darstellung ändert, wenn es den Eingabefokus erhält.

So testen Sie Ihre App:

  1. Installieren Sie Ihre App auf einem Gerät mit Hardwaretastatur.

    Wenn Sie kein Hardwaregerät mit Tastatur haben, schließen Sie eine Bluetooth- oder USB-Tastatur an.

    Sie können auch den Android Emulator verwenden:

    1. Klicken Sie im AVD-Manager entweder auf Neues Gerät oder wählen Sie ein vorhandenes Profil aus und klicken Sie auf Klonen.
    2. Prüfen Sie, ob im eingeblendeten Fenster Tastatur und Steuerkreuz aktiviert sind.
  2. Verwenden Sie zum Testen der Anwendung nur die Tabulatortaste, um durch Ihre Benutzeroberfläche zu navigieren. Achten Sie darauf, dass jedes UI-Steuerelement wie erwartet in den Fokus rückt.

    Suchen Sie nach Instanzen, bei denen sich der Fokus auf unerwartete Weise bewegt.

  3. Beginnen Sie noch einmal am Anfang Ihrer App und navigieren Sie mithilfe von Richtungssteuerungen wie den Pfeiltasten auf der Tastatur durch Ihre UI. Drücken Sie in jedem fokussierbaren Element Ihrer UI die Nach-oben-, Nach-unten-, Links- und Rechts-Taste.

    Suchen Sie nach Instanzen, bei denen sich der Fokus auf unerwartete Weise bewegt.

Wenn das Navigieren mit der Tabulatortaste oder den Steuerelementen für die Richtung nicht wie erwartet funktioniert, geben Sie an, wo der Schwerpunkt im Layout liegen muss. Dies wird in den folgenden Abschnitten beschrieben.

Tabnavigation behandeln

Wenn ein Nutzer mit der Tabulatortaste in Ihrer App navigiert, leitet das System den Eingabefokus zwischen den Elementen weiter, und zwar in der Reihenfolge, in der sie im Layout angezeigt werden. Wenn Sie beispielsweise ein relatives Layout verwenden und sich die Reihenfolge der Elemente auf dem Bildschirm von der Reihenfolge in der Datei unterscheidet, müssen Sie die Fokusreihenfolge möglicherweise manuell festlegen.

Im folgenden Layout sind beispielsweise zwei Schaltflächen rechtsbündig und ein Textfeld links neben der zweiten Schaltfläche angeordnet. Wenn der Fokus von der ersten Schaltfläche an das Textfeld und dann an die zweite Schaltfläche übergeben werden soll, muss im Layout die Fokusreihenfolge für jedes der fokussierbaren Elemente explizit mit dem Attribut android:nextFocusForward definiert werden.

<androidx.constraintlayout.widget.ConstraintLayout ...>
    <Button
        android:id="@+id/button1"
        android:nextFocusForward="@+id/editText1"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        ... />
    <Button
        android:id="@+id/button2"
        android:nextFocusForward="@+id/button1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/button1"
        ... />
    <EditText
        android:id="@id/editText1"
        android:nextFocusForward="@+id/button2"
        app:layout_constraintBottom_toBottomOf="@+id/button2"
        app:layout_constraintRight_toLeftOf="@id/button2
        ...  />
    ...
</androidx.constraintlayout.widget.ConstraintLayout>

Der Fokus bewegt sich jetzt nicht mehr von button1 nach button2 und dann editText1, sondern entsprechend dem Erscheinungsbild auf dem Bildschirm: von button1 nach editText1 und dann nach button2.

Richtungsnavigation behandeln

Nutzer können in Ihrer App auch mit den Pfeiltasten auf einer Tastatur navigieren. Dies funktioniert genauso wie die Navigation mit einem Steuerkreuz oder einem Trackball. Anhand des Layouts der Bildschirmansichten ermittelt das System, welche Ansicht in einer bestimmten Richtung fokussiert werden soll. Manchmal fällt das System jedoch falsch aus.

Wenn das System den Fokus beim Navigieren in eine bestimmte Richtung nicht an die entsprechende Ansicht übergibt, geben Sie mit den folgenden Attributen an, welche Ansicht fokussiert werden soll:

Jedes Attribut legt die nächste Ansicht fest, die hervorgehoben werden soll, wenn der Nutzer in diese Richtung geht, wie durch die Ansichts-ID angegeben. Dies wird im folgenden Beispiel gezeigt:

<Button
    android:id="@+id/button1"
    android:nextFocusRight="@+id/button2"
    android:nextFocusDown="@+id/editText1"
    ... />
<Button
    android:id="@id/button2"
    android:nextFocusLeft="@id/button1"
    android:nextFocusDown="@id/editText1"
    ... />
<EditText
    android:id="@id/editText1"
    android:nextFocusUp="@id/button1"
    ...  />

Weitere Informationen

Weitere Informationen finden Sie in den folgenden Ressourcen: