在ViewModel中实时更新Compose界面数据分为两步
分别是在ViewModel中,和View中。
一、在ViewModel中:
1、使用mutableStateOf定义一个可变的值,这个值用于界面显示。
val mutableStateInModel = mutableStateOf("")
这代表现在定义了一个字符串类型的“可变状态”,为什么要定义这样一个“可变状态”,因为使用mutableStateOf方法生成的“可变状态”,自带了通知界面 重新绘制 的功能,如果需要实现实时更新界面数据的功能时,可以使用这个mutableStateOf方法来定义 数据源。
2、如果需要界面显示的值更新,那么就需要改变这个“可变状态” 的 value属性。
mutableStateInModel.value = data.toString()
二、在View中:
1、使用by remenber创建View中显示的数据。
val mutableValueInView by remember{
viewModel.mutableStateInModel
}
使用by remember,将ViewModel中的数据关联到View中的变量。
2、在具体的Text中使用这个可以实时更新的值。
Text(
text = mutableValueInView,
Modifier.height(20.dp)
)