Start native apps faster with the Composables CLI ->
Interface

SoftwareKeyboardController

Provides manual, programmatic control over the software keyboard.

SoftwareKeyboardControllerSample

@Sampled
@Composable
fun SoftwareKeyboardControllerSample() {
    val keyboardController = LocalSoftwareKeyboardController.current

    // used to ensure a TextField is focused when showing keyboard
    val focusRequester = remember { FocusRequester() }
    var (text, setText) = remember { mutableStateOf("Close keyboard on done ime action (blue ✔️)") }
    Column(Modifier.padding(16.dp)) {
        BasicTextField(
            text,
            setText,
            keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
            keyboardActions = KeyboardActions(onDone = { keyboardController?.hide() }),
            modifier = Modifier.focusRequester(focusRequester).fillMaxWidth(),
        )
        Spacer(Modifier.height(16.dp))
        Button(
            onClick = {
                focusRequester.requestFocus()
                keyboardController?.show()
            },
            modifier = Modifier.fillMaxWidth(),
        ) {
            Text("Show software keyboard.")
        }
    }
}