我尝试写入它时,textfield总是会空虚。

问题描述 投票:0回答:1

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), ) } }

这样:

android kotlin android-jetpack-compose textfield viewmodel
1个回答
1
投票

or

name
获取您的选择
    
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.