Приведенный ниже код представляет собой упрощенную версию моей проблемы.
Я хочу инициировать действие при нажатии кнопки «Назад» на устройстве, когда клавиатура открыта.
Можно обрабатывать нажатие кнопки «Назад» с помощью BackHandler, когда клавиатура закрыта. Но мне это нужно, даже если клавиатура открыта.
Код: Выделить всё
@Composable
fun BackHandlingWhenKeyboardOpen() {
val focusManager = LocalFocusManager.current
BackHandler(
enabled = true,
) {
// This is not triggered when keyboard is open
Log.d("TEST_TAG", "Back Handler")
}
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.fillMaxSize()
.clickable(
indication = null,
interactionSource = remember { MutableInteractionSource() },
) {
focusManager.clearFocus()
}
) {
TextField(
value = "",
onValueChange = {},
keyboardActions = KeyboardActions(
onDone = {
focusManager.clearFocus()
},
),
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.NumberPassword,
imeAction = ImeAction.Done,
),
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
)
}
}
Источник: https://stackoverflow.com/questions/732 ... ck-compose