El teclado no se oculta cuando el TextField enfocado sale de LazyColumn.
Quizás este sea el comportamiento normal, pero desearía que fuera diferente. Intenté buscar la solución en Google, pero no encontré nada adecuado (o simplemente lo pasé por alto).
Código de ejemplo (para mayor simplicidad, mantengo estados mutables aquí mismo, sin usar ViewModel):
@Composable
fun Saludo() {
Scaffold(topBar = {
TopAppBar(title = { Text(text = "Algún título") })
}) {
val focusManager = LocalFocusManager.current
LazyColumn(
contentPadding = PaddingValues(all = 16.dp),
verticalArrangement = Arrangement.spacedBy(space = 16.dp)
) {
items(count = 20) { index ->
val (value, onValueChange) = rememberSaveable { mutableStateOf("Algún valor $index") }
TextField(
value = value,
onValueChange = onValueChange,
modifier = Modifier.fillMaxWidth(),
label = { Text(text = "Alguna etiqueta $index") },
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next),
keyboardActions = KeyboardActions(onNext = {
if (!focusManager.moveFocus(FocusDirection.Down))
focusManager.clearFocus()
}),
singleLine = true
)
}
}
}
}
Versión de Compose: 1.0.5
davy.ai
P: ¿Cuál es el problema con el código de muestra y cuál es la solución esperada?
El problema con el código de muestra es que cuando el usuario presiona el botón “Siguiente” en el teclado mientras edita un TextField, el enfoque no se mueve al siguiente TextField. La solución esperada es que al presionar el botón “Siguiente” en el teclado, se mueva el enfoque al siguiente TextField.