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

仅允许字符作为 TextField 中的输入

如何解决仅允许字符作为 TextField 中的输入

我试图让我的 TextField 只接受使用 keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) 作为的字符:

      TextField(
                value = query3.value,onValueChange = { newValue ->
                    query3.value = newValue
                },singleLine = true,label = {
                    Text(
                        "Bank name",color = colorResource(id = R.color.bright_green),fontFamily = FontFamily(Font(R.font.poppins_regular)),fontSize = with(LocalDensity.current) { dimensionResource(id = 
                        R.dimen._12ssp).toSp() },)
                },interactionSource = interactionSource,keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text),.
                 .
                 .

但软键盘仍然允许输入数字。如何让软键盘只允许输入字符?

解决方法

您需要过滤掉文本字段回调中的数字,

TextField(
            value = query3.value,onValueChange = { newValue ->
                query3.value = newValue.filter { !it.isDigit() }
            },singleLine = true,
,

恐怕此功能在 Android 中不受支持。是的,如果您希望用户只能输入一组指定的字符,那么在 onValueChange 中将其过滤掉或使用过滤器将是正确的选择。因为,在只允许用户输入数字的情况下,键盘仍会(始终)显示星号和(可能)加号键,即使单击它们时未输入它们。如果你想要一个只有特定数字的键盘,恐怕你必须设计自己的键盘(应用程序内),这不是用 Compose 很难实现的。小菜一碟

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