W niektórych ścieżkach użytkownika aplikacja musi wyraźnie przenieść fokus na określony komponent. Jeśli na przykład użytkownik kliknie przycisk „Szukaj”, możesz automatycznie przenieść fokus na pole do wprowadzania danych wyszukiwania.
Używanie FocusRequester
Aby wyraźnie poprosić o skupienie się na elemencie:
- Utwórz i zapamiętaj instancję
FocusRequester:val focusRequester = remember { FocusRequester() } - Dołącz
FocusRequesterdo docelowego komponentu za pomocą modyfikatorafocusRequester. - Wywołaj funkcję
requestFocus()w wywołaniu zwrotnym zdarzenia (np.onClick) lub w zakresie współprogramu.
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
Ustawianie fokusu na ekranie początkowym
Aby po pojawieniu się ekranu ustawić początkowy fokus na konkretnym komponencie, wywołaj requestFocus() w ramach LaunchedEffect(Unit):
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Podczas przechodzenia między kontenerami lub powracania z innego ekranu możesz też dołączać focusRestorer() do kontenerów nadrzędnych, aby automatycznie przywracać fokus do ostatniego elementu podrzędnego, na którym był fokus.
Więcej informacji znajdziesz w przewodniku Przywracanie stanu skupienia.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Punkty ostrości
- Cele skupienia grupy
- Przywracanie ostrości
- Przesuwanie i usuwanie ostrości