Wenn Nutzer eine Compose-Benutzeroberfläche mit einer Hardwaretastatur, einem Steuerkreuz oder einem Drehregler bedienen, sind Textfelder neben anderen Fokus-Targets Teil der Fokusnavigation.
Standardmäßig wird der Fokus nicht in Textfeldern eingeschlossen. Sie müssen keine benutzerdefinierten Event-Handler für Schlüsselereignisse (onKeyEvent oder onPreviewKeyEvent) hinzufügen, damit Nutzer ein Textfeld verlassen können. Nutzer können jederzeit mit Umschalt+Tab oder durch Navigieren über die Textgrenzen hinaus mit den Richtungstasten aus dem Textfeld herauskommen.
Mit KeyboardOptions kann eine intuitive Softwaretastaturaktion bereitgestellt werden, die mit der Hardwaretastaturnavigation koordiniert wird.
Mit ImeAction.Next wird der Fokus beispielsweise auf das nächste Fokusziel verschoben.
Eindimensionale Fokusbewegung
Bei der eindimensionalen Fokusbewegung hängt das Verhalten der Tabulatortaste von der für das Textfeld konfigurierten lineLimits ab:
- Einzeilige Textfelder (
TextFieldLineLimits.SingleLine) Durch Drücken der Tabulatortaste wird der Fokus auf das nächste Fokusziel in der Benutzeroberfläche verschoben. - Mehrzeilige Textfelder (
TextFieldLineLimits.MultiLine()oder Standard): Wenn Sie die Tabulatortaste drücken, wird ein Tabulatorzeichen (\t) in den Textpuffer eingefügt, anstatt den Fokus zu verschieben. - Rückwärtsnavigation (Umschalt + Tabulatortaste): Durch Drücken von Umschalt + Tabulatortaste wird der Fokus in einzeiligen und mehrzeiligen Textfeldern immer auf das vorherige Fokusziel verschoben.
// 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() )
Zweidimensionale Fokusbewegung
Wenn Sie die Pfeiltasten (oder ein Steuerkreuz) verwenden, bewegen die Richtungstasten zuerst den Textcursor (Caret) im Textfeld:
- Vertikale Navigation (auf / ab):
Durch Drücken der Taste
Downwird der Cursor zeilenweise nach unten bewegt. Wenn der Cursor die letzte Zeile erreicht, wird der Fokus durch erneutes Drücken der Abwärtstaste auf das angrenzende Fokusziel unter dem Textfeld verschoben. Wenn Sie in der ersten Zeile die Aufwärtspfeiltaste drücken, wird der Fokus auf das vorherige Fokusziel verschoben. - Horizontale Navigation (links / rechts / Anfang / Ende): Durch Drücken der horizontalen Pfeiltasten wird das Caret-Zeichen durch die Zeichen bewegt. Wenn der Cursor den Anfang oder das Ende des Textpuffers erreicht, wird der Fokus durch erneutes Drücken der Richtungstaste in diese Richtung auf das angrenzende Fokusziel übertragen.
Textfelder auf Android TV
So verwendest du auf Android TV Steuerkreuze ohne physische Tastatur:
- Wenn Sie den Fokus auf ein Textfeld verschieben, wird automatisch die Softwaretastatur auf dem Bildschirm angezeigt.
- Der Nutzer navigiert mit dem Steuerkreuz auf der Softwaretastatur.
- Durch Drücken der Zurück-Taste wird die Softwaretastatur geschlossen, der Fokus auf dem Textfeld bleibt jedoch erhalten.
- Wenn die Softwaretastatur geschlossen wird, wird der Fokus durch Drücken der Richtungstasten des Steuerkreuzes auf benachbarte Fokuszielobjekte auf dem Bildschirm verschoben.
- Wenn Sie die Zurück-Taste ein zweites Mal drücken, wird die standardmäßige System-Rückwärtsnavigation ausgelöst.
Empfehlungen für Sie
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist
- Fokusziele
- Reihenfolge des Fokusdurchlaufs
- Fokusziele für Gruppen
- Fokusnavigation testen