android构成textfield onvaluechanged未触发,然后输入数字

问题描述 投票:0回答:1

我有一个B2B应用程序,该应用程序在许多特定于行业的设备上运行,使用Android 6,7,8,10 ...

有一个具有Android 8.1的设备,它在实现的TextFields上存在问题

TextField( modifier = Modifier.fillMaxWidth().weight(1f), value = vm.name, singleLine = true, onValueChange = { vm.name = it } ) TextField( modifier = Modifier.fillMaxWidth().weight(1f), value = vm.duration.toString(), singleLine = true, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), onValueChange = { vm.duration = try { it.toInt() } catch (e: Exception) { 0 } } )
在每个设备上都可以工作,但在这里持续的文字菲尔德,
在按下键盘上的数字时,什么也不会发生,并且永远不会触发valuechange。
最奇怪的是,还有更多类似名称的文本文字,其中一些是
我也无法写数字,我可以。

对于所有10个以上的文本字段,实现都是这样的。有些仅是数值的,而有些是全文。 我永远无法在数字中写入任何数字,有时我什至不能写上文字。 该特定的Android 8.1设备。 (在同一制造商的更多设备上尝试使用相同的Android构建)

任何建议?

检查查看是否在logcat中看到登录。

TextField( modifier = Modifier.fillMaxWidth().weight(1f), value = vm.duration.toString(), singleLine = true, keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), onValueChange = { Log.d("TAG", it) vm.duration = if (it.isNumber()) it.toInt() else 0 } )
android android-jetpack-compose keyboard android-compose-textfield
1个回答
0
投票
fun String.isNumber(): Boolean { return this.matches("^\\d+$".toRegex()) }


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.