Gdy użytkownicy poruszają się po interfejsie Compose za pomocą klawiatury, pada kierunkowego lub kontrolera obrotowego, pola tekstowe uczestniczą w nawigacji po elementach aktywnych razem z innymi elementami aktywnymi.
Domyślnie zaznaczenie nie jest blokowane w polach tekstowych. Nie musisz dodawać niestandardowych modułów obsługi zdarzeń klawiszy (onKeyEvent lub onPreviewKeyEvent), aby umożliwić użytkownikom opuszczenie pola tekstowego. Użytkownicy mogą zawsze wyjść z tego trybu, naciskając Shift + Tab lub przechodząc poza granice tekstu za pomocą klawiszy kierunkowych.
KeyboardOptions można użyć do zapewnienia intuicyjnego działania klawiatury ekranowej, które jest skoordynowane z nawigacją za pomocą klawiatury fizycznej.
Na przykład ImeAction.Next przenosi zaznaczenie na następny element.
Jednowymiarowe przechodzenie fokusu
W przypadku jednowymiarowego przechodzenia między elementami zaznaczonymi działanie klawisza Tab zależy od właściwości lineLimits skonfigurowanej w polu tekstowym:
- Jednowierszowe pola tekstowe (
TextFieldLineLimits.SingleLine) Naciśnięcie klawisza Tab przenosi zaznaczenie na następny element interfejsu. - Wielowierszowe pola tekstowe (
TextFieldLineLimits.MultiLine()lub domyślne): naciśnięcie klawisza Tab powoduje wstawienie znaku tabulacji (\t) do bufora tekstowego zamiast przeniesienia zaznaczenia. - Nawigacja wstecz (Shift + Tab): naciśnięcie klawiszy Shift + Tab bezwarunkowo przenosi zaznaczenie wstecz do poprzedniego celu zaznaczenia zarówno w jednowierszowych, jak i wielowierszowych polach tekstowych.
// Single-line text field: Tab advances focus to the next focus target BasicTextField( state = singleLineState, lineLimits = TextFieldLineLimits.SingleLine, modifier = Modifier.fillMaxWidth() ) // Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target BasicTextField( state = multiLineState, lineLimits = TextFieldLineLimits.MultiLine(), modifier = Modifier.fillMaxWidth() )
Dwuwymiarowe przechodzenie fokusa
Gdy używasz klawiszy strzałek (lub pada kierunkowego), klawisze kierunkowe najpierw przesuwają kursor tekstowy w polu tekstowym:
- Nawigacja w pionie (w górę i w dół):
naciśnięcie klawisza
Downpowoduje przesunięcie kursora w dół o 1 wiersz. Gdy kursor dotrze do ostatniego wiersza, ponowne naciśnięcie klawisza Strzałka w dół przeniesie zaznaczenie na sąsiedni element docelowy poniżej pola tekstowego. Naciśnięcie klawisza Strzałka w górę w pierwszym wierszu przenosi zaznaczenie na poprzedni element. - Nawigacja pozioma (w lewo / w prawo / początek / koniec): naciskanie klawiszy strzałek w poziomie powoduje przesuwanie kursora między znakami. Gdy kursor dotrze do początku lub końca bufora tekstu, ponowne naciśnięcie klawisza kierunkowego przeniesie zaznaczenie na sąsiedni element docelowy w tym kierunku.
Pola tekstowe na Androidzie TV
Na Androidzie TV, gdy używasz padów kierunkowych bez klawiatury fizycznej:
- Przeniesienie zaznaczenia na pole tekstowe powoduje automatyczne wyświetlenie klawiatury ekranowej.
- Użytkownik porusza się po klawiszach klawiatury ekranowej za pomocą pada kierunkowego.
- Naciśnięcie przycisku Wstecz powoduje zamknięcie klawiatury ekranowej, ale fokus pozostaje na polu tekstowym.
- Po zamknięciu klawiatury ekranowej naciśnięcie klawiszy kierunkowych pada kierunkowego powoduje przeniesienie zaznaczenia na sąsiednie elementy na ekranie.
- Ponowne naciśnięcie przycisku Wstecz powoduje uruchomienie standardowego przechodzenia wstecz systemu.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Cele skupienia
- Kolejność przechodzenia między elementami
- Cele skupienia grupy
- Testowanie nawigacji z użyciem zaznaczenia