微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TextField 和新行的问题

如何解决TextField 和新行的问题

我正在使用 Jetpack Compose,但我遇到了 TextField 问题: 当我想插入新行时,onValueChange 向我发送了错误的字符串值。

几个步骤来说明:

// Step 1
currentValue : ""
input value : "A"
onValueChange : "A" // OK

// Step 2
currentValue : "A"
input value : "\n"
onValueChange : "A\n" // OK

// Step 3
currentValue : "A\n"
input value : "B"
onValueChange : "AB\n" // Here the "B" isn't inserted at the end,why ?

// Step 4
currentValue : "AB\n"
input value : "C"
onValueChange : "AB\nC" // The "C" is correctly inserted

我使用的是 BasicTextField,但 TextField 也有同样的错误

var message by remember { mutableStateOf("") }
BasicTextField(
    value = message,onValueChange = { message = it },textStyle = TextStyle(fontSize = 15.sp),decorationBox = { innerTextField ->

        if (message.isEmpty())
            Text(text = "Enter message")

        innerTextField()
    }
)

还有其他人面临这个问题吗?

编辑:找到可能的来源

在我的测试中,我遇到了带有 Android 10 自定义 ROM 的小米 Mi8 的问题,但是对于我的 S21U(Android 11 官方),我没有问题。

可能是因为自定义 ROM 或 Android 10。

EDIT2:错误跟踪

这个问题现在被谷歌知道了,他们正在修复: https://issuetracker.google.com/issues/193457105

解决方法

尝试删除该 decorationBox 参数。以前真的没见过这种行为

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。