Obsługa nawigacji za pomocą klawiatury

Oprócz opcjonalnego wprowadzania danych, np. na ekranie klawiatury – Android obsługuje klawiatury fizyczne podłączone do urządzenia. O oferuje wygodny tryb wprowadzania tekstu oraz sposób poruszać się po aplikacji i wchodzić z nią w interakcję. Chociaż większość urządzeń przenośnych, takich jak Telefony używają dotyku jako głównego trybu interakcji, a tablety i podobne urządzenia są popularne i wielu użytkowników ma w zanadrzu akcesoria do klawiatur .

Ponieważ coraz więcej urządzeń z Androidem udostępnia tego rodzaju funkcje, ważne jest, zoptymalizowanie aplikacji pod kątem obsługi interakcji za pomocą klawiatury. Ten opisuje, jak można poprawić nawigację za pomocą klawiatury.

Testowanie aplikacji

Użytkownicy mogą już mieć możliwość poruszania się po Twojej aplikacji za pomocą klawiatury, ponieważ system Android domyślnie włącza większość niezbędnych działań.

Wszystkie interaktywne widżety udostępniane przez platformę Androida – takie jak Button i EditText – są które można zaznaczyć. Użytkownicy mogą nawigować za pomocą urządzeń sterujących takich jak pad kierunkowy klawiatury, a każdy widżet podświetla się lub w inny sposób zmienia wygląd, powoduje skupienie się na danych wejściowych.

Aby przetestować aplikację, wykonaj te czynności:

  1. Zainstaluj aplikację na urządzeniu, które ma klawiaturę sprzętową.

    Jeśli nie masz urządzenia z klawiaturą, połącz się przez Bluetooth klawiatury lub USB.

    Możesz też użyć emulatora Androida:

    1. W Menedżerze AVD kliknij Nowe urządzenie lub wybierz istniejącego profilu i kliknij Sklonuj.
    2. W wyświetlonym oknie sprawdź, czy Klawiatura i pad kierunkowy są .
  2. Aby przetestować aplikację, poruszaj się po sekcji za pomocą klawisza Tab Interfejs. Upewnij się, że wszystkie elementy sterujące UI są skoncentrowane zgodnie z oczekiwaniami.

    Poszukaj przypadków, w których zaznaczenie przesuwa się w nieoczekiwanym miejscu w dobrym stylu.

  3. Zacznij od początku aplikacji i poruszaj się po interfejsie za pomocą elementów sterujących, np. klawiszy strzałek na klawiaturze. Z każdej element, który można zaznaczyć, naciśnij w górę, w dół, Lewo i W prawo.

    Poszukaj przypadków, w których zaznaczenie przesuwa się w nieoczekiwanym miejscu w dobrym stylu.

Jeśli natrafisz na nawigowanie przy użyciu klawisza Tab lub elementy sterujące kierunku nie działają zgodnie z oczekiwaniami. Określ, gdzie należy ustawić ostrość. w układzie, co zostało omówione w kolejnych sekcjach.

Uchwyć nawigację po kartach

Gdy użytkownik porusza się po aplikacji za pomocą klawisza Tab na klawiaturze, system przekazuje fokus danych wejściowych między elementami na podstawie kolejności, w jakiej się znajdują pojawi się w układzie. Jeśli np. używasz układu względnego i kolejność kolejność elementów na ekranie różni się od ich kolejności w pliku, może być konieczne ręczne określenie kolejności fokusu.

Na przykład w tym układzie 2 przyciski są wyrównane do prawej a pole tekstowe jest wyrównane po lewej stronie drugiego przycisku. Aby zaliczyć z pierwszego przycisku do pola tekstowego, a następnie do drugiego przycisku, musi mieć jawnie zdefiniowanie kolejności zaznaczenia każdego elementu, elementy z atrybutami android:nextFocusForward .

<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>

Zamiast przenosić ostrość z widoku button1 na button2, a potem editText1, prawidłowo się porusza według wyglądu na ekranie: od button1 do editText1, a potem button2.

Włącz nawigację kierunkową

Użytkownicy mogą też poruszać się po aplikacji za pomocą klawiszy strzałek na klawiaturze, działa tak samo jak przy użyciu pada kierunkowego lub kulki. System podaje „najlepszą odpowiedź”, który widok ma zostać wyróżniony w danym kierunku. w zależności od układu wyświetlanego na ekranie. Czasami jednak system mylić się.

Jeśli system nie ustawi fokusu na odpowiedni widok podczas nawigacji w danym kierunku, określ, który widok musi być zaznaczony w następujący sposób: atrybuty:

Każdy atrybut wyznacza następny widok, który ma zostać zaznaczony, przechodzi w tym kierunku, zgodnie z identyfikatorem widoku. Widać to w następujący przykład:

<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"
    ...  />

Dodatkowe materiały

Zapoznaj się z tymi powiązanymi materiałami: