Jetpack Compose 等同于 InputFilter?
Jetpack Compose equivalent to InputFilter?
我正在寻找 Jetpack Compose TextField 中 EditText 的 InputFilter 的等效方法。
因为我试图阻止用户输入不需要的值,例如 %@*()-
个字符。
这里有一个正则表达式的解决方案:
@Composable
fun FilteredTextField(
text: String,
onChanged: (String) -> Unit,
ignoredRegex: Regex
) {
TextField(value = text,
onValueChange = {
if (!it.contains(ignoredRegex)) onChanged(it)
}
)
}
使用:
@Composable
fun FilteredTextFieldDemo() {
var text by remember { mutableStateOf("") }
FilteredTextField(
text = text,
onChanged = { text = it },
ignoredRegex = Regex("[%@*()-]")
)
}
我正在寻找 Jetpack Compose TextField 中 EditText 的 InputFilter 的等效方法。
因为我试图阻止用户输入不需要的值,例如 %@*()-
个字符。
这里有一个正则表达式的解决方案:
@Composable
fun FilteredTextField(
text: String,
onChanged: (String) -> Unit,
ignoredRegex: Regex
) {
TextField(value = text,
onValueChange = {
if (!it.contains(ignoredRegex)) onChanged(it)
}
)
}
使用:
@Composable
fun FilteredTextFieldDemo() {
var text by remember { mutableStateOf("") }
FilteredTextField(
text = text,
onChanged = { text = it },
ignoredRegex = Regex("[%@*()-]")
)
}