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