Класс FocusRequester
Класс FocusRequester из пакета
androidx.compose.ui.focus
связывают с полем через модификатор
focusRequester.
Объект создают через
remember
и вызывают
requestFocus,
чтобы клавиатура открылась на нужном
OutlinedTextField.
Синтаксис
val focusRequester = remember { FocusRequester() }
Методы
| Метод | Описание |
|---|---|
requestFocus |
Переводит фокус на элемент с этим requester. |
Пример
Давайте сфокусируем поле при старте экрана:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.OutlinedTextField
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val focusRequester = remember { FocusRequester() }
var text by remember { mutableStateOf("abcde") }
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
OutlinedTextField(
value = text,
onValueChange = { text = it },
modifier = Modifier.focusRequester(focusRequester),
)
}
}
}
На экране поле сразу в фокусе, мигает курсор и может открыться программная клавиатура.
Смотрите также
-
метод
requestFocus,
который переводит фокус на связанный элемент -
класс
LocalFocusManager,
который снимает фокус со всего экрана -
класс
LocalSoftwareKeyboardController,
который показывает и скрывает клавиатуру -
функция
OutlinedTextField,
к которой часто подключают focusRequester