在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)
)
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐