es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  , ,

Answer

  1. Avatar for 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.

Comments are closed.