有这个简单的例子:
@Composable
fun SimpleFilledTextFieldSample() {
var text by remember { mutableStateOf("Hello") }
TextField(
value = text,
onValueChange = { text = it },
label = { Text("Label") }
)
}
我想了解每次用户按下某个键时“onValueChange”是否都会更新(即调用)?
我在 android jetpack compose 文档中找不到答案。
你的理解是正确的。每当 中的文本
TextField
被修改时,onValueChange
都会使用整个当前文本进行调用。当你在空白处输入“ABC”时
TextField
,onValueChange
回调将返回文档
TextField
说他们在这里使用相当通用的“输入服务”术语,因为有多种方法可以将文本生成为
TextField
,也称为IME:每当 IME 生成或更改 中的文本时
TextField
,onValueChange
就会触发。然后您的工作就是value
使用新文本更新变量以正确更新 UI。