Tastaturnavigation unterstützen

Neben Methoden der Eingabe per Software, z. B. Bildschirmtastaturen, unterstützt Android auch physische Tastaturen, die an das Gerät angeschlossen sind. Eine Tastatur bietet eine praktische Möglichkeit zur Texteingabe und eine Möglichkeit für Nutzer, sich in Ihrer App zu bewegen und mit ihr zu interagieren. Obwohl die meisten tragbaren Geräte wie Smartphones die Touchbedienung als primäre Interaktionsmethode verwenden, sind Tablets und ähnliche Geräte beliebt und viele Nutzer verwenden gerne Tastaturzubehör.

Da immer mehr Android-Geräte diese Funktion bieten, ist es wichtig, dass Sie Ihre App so optimieren, dass die Interaktion über eine Tastatur unterstützt wird. In diesem Dokument wird beschrieben, wie Sie die Navigation mit einer Tastatur verbessern können.

App testen

Möglicherweise können Nutzer Ihre App bereits mit einer Tastatur bedienen, da das Android-System die meisten erforderlichen Funktionen standardmäßig aktiviert.

Alle interaktiven Widgets, die vom Android-Framework bereitgestellt werden, z. B. Button und EditText, können fokussiert werden. Das bedeutet, dass Nutzer mit Steuergeräten wie einem D-Pad oder einer Tastatur navigieren können. Jedes Widget leuchtet auf oder ändert anderweitig sein Aussehen, wenn es den Eingabefokus erhält.

So testen Sie Ihre App:

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

    Wenn Sie kein Hardwaregerät mit einer 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. Achten Sie im angezeigten Fenster darauf, dass Tastatur und D-Pad aktiviert sind.
  2. Verwenden Sie zum Testen Ihrer App nur die Tabulatortaste, um sich durch die Benutzeroberfläche zu bewegen. Achten Sie darauf, dass jedes Steuerelement der Benutzeroberfläche wie erwartet den Fokus erhält.

    Suchen Sie nach Fällen, in denen sich der Fokus auf unerwartete Weise bewegt.

  3. Beginnen Sie noch einmal von vorn und bewegen Sie sich mithilfe der Richtungsschaltflächen wie den Pfeiltasten auf der Tastatur durch die Benutzeroberfläche. Drücken Sie bei jedem Element in Ihrer Benutzeroberfläche, das fokussiert werden kann, die Tasten Oben, Unten, Links und Rechts.

    Suchen Sie nach Fällen, in denen sich der Fokus auf unerwartete Weise bewegt.

Wenn die Navigation mit der Tabulatortaste Tab oder den Richtungsschaltern nicht wie erwartet funktioniert, geben Sie an, wo sich der Fokus in Ihrem Layout befinden muss. Weitere Informationen finden Sie in den folgenden Abschnitten.

Tabnavigation steuern

Wenn ein Nutzer Ihre App mit der Tabulatortaste Tab bedient, gibt das System den Eingabefokus an die Elemente weiter, die im Layout in der Reihenfolge erscheinen, in der sie erscheinen. Wenn Sie beispielsweise ein relatives Layout verwenden und die Reihenfolge der Elemente auf dem Bildschirm von der Reihenfolge in der Datei abweicht, müssen Sie die Fokusreihenfolge möglicherweise manuell angeben.

Im folgenden Layout sind beispielsweise zwei Schaltflächen rechts und ein Textfeld links neben der zweiten Schaltfläche ausgerichtet. Damit der Fokus von der ersten Schaltfläche zum Textfeld und dann zur zweiten Schaltfläche wechselt, muss im Layout die Reihenfolge der Fokussierung für jedes der fokussierbaren Elemente mit dem Attribut android:nextFocusForward explizit 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>

Anstatt dass sich der Fokus von button1 zu button2 und dann zu editText1 bewegt, bewegt er sich jetzt entsprechend der Darstellung auf dem Bildschirm: von button1 zu editText1 und dann zu button2.

Wegbeschreibungen verarbeiten

Nutzer können Ihre App auch mit den Pfeiltasten auf einer Tastatur bedienen. Das funktioniert genauso wie mit einem D-Pad oder einem Trackball. Das System gibt basierend auf dem Layout der Ansichten auf dem Bildschirm eine „beste Schätzung“ dafür ab, welche Ansicht in einer bestimmten Richtung fokussiert werden soll. Manchmal liegt das System jedoch falsch.

Wenn der Fokus beim Navigieren in eine bestimmte Richtung nicht auf die entsprechende Ansicht übertragen wird, geben Sie mit den folgenden Attributen an, welche Ansicht den Fokus erhalten soll:

Jedes Attribut gibt die nächste Ansicht an, die den Fokus erhält, wenn sich der Nutzer in diese Richtung bewegt, wie durch die Ansichts-ID angegeben. Das ist im folgenden Beispiel dargestellt:

<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 unter den folgenden Links: