Класс LocalFocusManager
Объект LocalFocusManager из пакета
androidx.compose.ui.platform
это composition local для управления фокусом.
Текущий менеджер берут через current
внутри composable.
Метод
clearFocus
снимает фокус с активного поля,
часто вместе со скрытием клавиатуры через
LocalSoftwareKeyboardController.
Синтаксис
val focusManager = LocalFocusManager.current
Методы
| Метод | Описание |
|---|---|
clearFocus |
Снимает фокус с элемента, который сейчас в фокусе. |
Пример
Давайте снимем фокус по нажатию кнопки:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Button
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalFocusManager
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val focusManager = LocalFocusManager.current
var text by remember { mutableStateOf("abcde") }
OutlinedTextField(
value = text,
onValueChange = { text = it },
)
Button(onClick = { focusManager.clearFocus() }) {
Text("12345")
}
}
}
}
На экране поле и кнопка, после нажатия кнопки фокус уходит с поля и курсор пропадает.
Смотрите также
-
метод
clearFocus,
который снимает фокус программно -
класс
FocusRequester,
который наоборот запрашивает фокус -
метод
hide,
который прячет клавиатуру после clearFocus -
функция
OutlinedTextField,
с которого обычно снимают фокус