【问题标题】:Android Jetpack Compose: Listen to user's keyboard input not working with Enter keyAndroid Jetpack Compose:听用户的键盘输入不使用 Enter 键
【发布时间】:2021-09-30 15:10:31
【问题描述】:

我正在尝试在软键盘上按下 Enter 键时执行一个功能,我 found Modifier.onKeyEvent{} 通常在软键盘上收听用户输入。

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

我的软键盘是这样的

在 TextField 下方使用此选项

keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number)

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

【问题讨论】:

    标签: android kotlin android-jetpack-compose


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢,你拯救了我的一天。但我只是好奇你从哪里得到这个解决方案?我无法在任何地方找到它。你能给我一个与此相关的链接吗?
    • @foseja 我添加了文档链接。您也可以查看this article
    【解决方案2】:

    回车键很特殊。特别是当它不是回车键,而是完成按钮或类似按钮时。它不是发送一个 commitText,而是通过视图的 OnEditorActionListener 发送它。您需要设置一个 OnEditorActionListener 并在其中处理该案例。

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 2021-04-10
      • 2022-11-21
      • 1970-01-01
      • 2021-04-19
      • 2022-12-18
      • 2011-12-14
      • 2021-11-16
      • 2021-05-06
      相关资源
      最近更新 更多