我正在尝试TextField
在 Jetpack Compose 中创建一个供用户输入他们的名字和姓氏的方法。
有没有办法只允许[a-zA-Z\s]
输入字母和空格()?我已经尝试了所有可用的选项,包括KeyboardType.Text
, KeyboardType.Ascii
, KeyboardType.Uri
,但它们都显示数字!
我错过了一些明显的东西吗?老实说,我有点震惊谷歌没有开箱即用地提供这个选项。
我正在尝试TextField
在 Jetpack Compose 中创建一个供用户输入他们的名字和姓氏的方法。
有没有办法只允许[a-zA-Z\s]
输入字母和空格()?我已经尝试了所有可用的选项,包括KeyboardType.Text
, KeyboardType.Ascii
, KeyboardType.Uri
,但它们都显示数字!
我错过了一些明显的东西吗?老实说,我有点震惊谷歌没有开箱即用地提供这个选项。
尝试这个:
val pattern = remember { Regex("[a-zA-z\\s]*") }
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = {
if (it.matches(pattern)) {
text = it
}
}
)
在 Android 中,无法显示仅包含字母的键盘(并且与撰写无关)。键盘应用程序也不支持它。
还有其他类型的键盘(如数字键盘),但键盘的视图仍由键盘应用程序控制。
最好根据所需的标准过滤给定的输入。例如:
onValueChange = {
text = it.letters()
}
private fun String.letters() = filter { it.isLetter() }