kotlin - 如何防止用户在文本字段中输入两个点jetpack compose

标签 kotlin android-jetpack-compose

我在 android jetpack compose 中有一个文本字段,用于从用户那里获取数字,包括 float 。如何防止用户在输入中输入 2 个点。 例如:数字应为 56.54,.266, 367.5

不应该是这样的:34.3.5

最佳答案

您可以使用TextFieldonValueChange来过滤文本:

@Composable
fun MyTextField(
) {
    var text by remember { mutableStateOf("") }
    TextField(
        keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number),
        value = text,
        onValueChange = {
            val newString = it.filter { char ->
                char == ".".first()
            }
            if (newString.length <= 1)
                text = it
        }
    )
}

关于kotlin - 如何防止用户在文本字段中输入两个点jetpack compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73002360/

相关文章:

java - 如何删除连续位置的所有重复项?

function - 确保kotlin方法是静态的,顶级的或带注释的@JvmStatic

android - Jetpack Compose 项目在我向其添加匿名类后未构建

android - 为什么我不能在 `AnimatedVisibility` 中使用 `BoxScope` ?

kotlin - 如何在 Kotlin 中实现可变可选?

kotlin - 使用类委托(delegate)时,有没有办法覆盖委托(delegate)对象的方法使用的成员?

java - 在 Kotlin 中清除控制台

android - Android 上的外部键盘导致换行而不是搜索 - Kotlin

kotlin - Android jetpack compose更改脚手架背景颜色不改变

android - ExoPlayer2 在 Jetpack Compose 中无法正确剪辑,并且仍然与其他 ExoPlayer 重叠渲染