Android Jetpack Compose:监听用户的键盘输入,无法使用 Enter 键

fos*_*eja 5 android kotlin android-jetpack-compose

我试图在软键盘上按下 Enter 键时执行一个功能,我发现 Modifier.onKeyEvent{}一般可以在软键盘上监听用户输入。

但是,这不适用于 Enter 键(尤其是数字键盘上的“完成”键)。

我的软键盘是这样的

在此输入图像描述

在 TextField 中使用下面的这个选项

keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number)
Run Code Online (Sandbox Code Playgroud)

当我在按下的任何键上打印日志时,除了那些“完成”和“.-”键之外,所有其他按键都会被识别。

Phi*_*hov 4

您可以使用keyboardActions文本字段参数来处理它:

TextField(
    value = text, onValueChange = { text = it },
    keyboardOptions = KeyboardOptions.Default.copy(
        keyboardType = KeyboardType.Number,
        imeAction = ImeAction.Done
    ),
    keyboardActions = KeyboardActions(onDone = {
        println("done")
    })
)
Run Code Online (Sandbox Code Playgroud)