我试图让我的 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),
.
.
.
但软键盘仍然允许输入数字。如何让软键盘只允许输入字符?
答案 0 :(得分:2)
您需要过滤掉文本字段回调中的数字,
TextField(
value = query3.value,
onValueChange = { newValue ->
query3.value = newValue.filter { !it.isDigit() }
},
singleLine = true,
答案 1 :(得分:1)
恐怕此功能在 Android 中不受支持。是的,如果您希望用户只能输入一组指定的字符,那么在 onValueChange
中将其过滤掉或使用过滤器将是正确的选择。因为,在只允许用户输入数字的情况下,键盘仍会(始终)显示星号和(可能)加号键,即使单击它们时未输入它们。如果你想要一个只有特定数字的键盘,恐怕你必须设计自己的键盘(应用程序内),这不是用 Compose 很难实现的。小菜一碟