Метод clearFocus
Метод clearFocus у менеджера из
LocalFocusManager
убирает фокус с текущего элемента.
Менеджер получают как
LocalFocusManager.current.
После вызова программная клавиатура
может остаться открытой, её прячут методом
hide.
Синтаксис
focusManager.clearFocus()
Параметры
| Параметр | Описание |
|---|---|
force |
Если true, фокус снимают даже когда
элемент просит его удержать.
|
Пример
Давайте вызовем 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
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val focusManager = LocalFocusManager.current
val keyboard = LocalSoftwareKeyboardController.current
var text by remember { mutableStateOf("abcde") }
OutlinedTextField(
value = text,
onValueChange = { text = it },
)
Button(onClick = {
focusManager.clearFocus()
keyboard?.hide()
}) {
Text("12345")
}
}
}
}
На экране кнопка снимает фокус с поля и прячет клавиатуру.
Смотрите также
-
класс
LocalFocusManager,
через current которого вызывают clearFocus -
метод
requestFocus,
который возвращает фокус на поле -
метод
hide,
который убирает клавиатуру с экрана -
функция
TextField,
редактирование которого завершают clearFocus