:
:
MainActivity
val myVM = MyVM()
MyScreen(
modifier = Modifier.fillMaxSize(),
name = myVM.name
) {
myVM.onNameChange(it)
}
:
MyScreen
我希望用户输入他们的名称,并在ViewModel中更新名称可变状态变量
使用compose将在每个重新组件上创建一个new视图模型实例,从一个空的新属性开始。
您希望视图模型实例能够生存在重新分配中。为此,您需要使用工厂功能
@Composable
fun MyScreen(
modifier: Modifier,
name: String,
onNameChange: (String) -> Unit,
) {
Box(
modifier = modifier,
contentAlignment = Alignment.Center,
) {
OutlinedTextField(
value = name,
onValueChange = { newText -> onNameChange(newText) },
label = { Text(text = "Name") },
modifier = Modifier
.fillMaxWidth()
.padding(8.dp),
)
}
}
这样:
or
name
获取您的选择