In speziellen Interaktionsmodi (z. B. einem eingebetteten Zeichenbereich, einer Gamecontroller-Oberfläche oder einem modalen Eingabedialogfeld) muss der Fokus möglicherweise vorübergehend auf eine einzelne Komponente beschränkt werden, sodass die Navigation mit der Tabulatortaste oder den Richtungstasten nicht möglich ist.
Fokus der Aufnahme
Rufen Sie captureFocus() für ein FocusRequester auf, um den Fokus zu erfassen:
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Wenn der Fokus erfasst wird, wird er durch die Standardtasten für die Fokusnavigation (z. B. Tab) nicht auf benachbarte Komponenten verschoben.
Fokus auf die Veröffentlichung
Wenn Sie den erfassten Zustand beenden und die normale Fokusnavigation in der gesamten Benutzeroberfläche wiederherstellen möchten, rufen Sie freeFocus() auf:
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Empfehlungen für Sie
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist
- Fokusziele
- Fokusziele für Gruppen
- Fokus programmatisch anfordern