W niektórych wzorcach przeglądania aplikacja musi wyraźnie przenieść zaznaczenie na konkretny komponent. Na przykład gdy użytkownik kliknie przycisk „Szukaj”, możesz automatycznie przenieść zaznaczenie na pole do wprowadzania danych.
Używanie FocusRequester
Aby wyraźnie poprosić o skupienie:
- Utwórz i zapamiętaj instancję
FocusRequester:val focusRequester = remember { FocusRequester() }. - Dołącz
FocusRequesterdo docelowego elementu kompozycyjnego 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 początkowego fokusu ekranu
Aby ustawić początkowe zaznaczenie na konkretnym komponencie, gdy ekran pojawi się po raz pierwszy, wywołaj requestFocus() wewnątrz LaunchedEffect(Unit):
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Podczas przechodzenia między kontenerami lub powrotu z innego ekranu możesz też dołączyć focusRestorer() do kontenerów nadrzędnych, aby automatycznie przywracać zaznaczenie ostatniego zaznaczonego elementu podrzędnego.
Więcej informacji znajdziesz w przewodniku Przywracanie zaznaczenia.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Cele skupienia
- Cele skupienia grupy
- Przywracanie ostrości
- Przenoszenie i usuwanie zaznaczenia