Android 跨屏幕正确确定ViewModel的范围
假设我们有一个跨多个屏幕的注册表单,例如: 因此,我创建了一个跨越这些屏幕的范围视图模型: 问题在于,由于状态的作用域是跨屏幕的,因此:Android 跨屏幕正确确定ViewModel的范围,android,android-viewmodel,android-navigation,android-jetpack-compose,Android,Android Viewmodel,Android Navigation,Android Jetpack Compose,假设我们有一个跨多个屏幕的注册表单,例如: 因此,我创建了一个跨越这些屏幕的范围视图模型: 问题在于,由于状态的作用域是跨屏幕的,因此: PersonalInfo屏幕->设置用户名屏幕->(按下)个人信息屏幕如下所示: 请注意,username状态被保留(因为ViewModel的作用域横跨整个流)。因此,当用户返回到设置用户名屏幕而不是空白状态时,它将保留以前的状态。(但我需要它被清除) 所以我真正需要的是: 能够知道before屏幕是否被完全处理(不是因为设备配置更改或它将返回后台),
PersonalInfo屏幕->设置用户名屏幕->(按下)个人信息屏幕
如下所示:
请注意,username
状态被保留(因为ViewModel的作用域横跨整个流)。因此,当用户返回到设置用户名屏幕
而不是空白状态时,它将保留以前的状态。(但我需要它被清除)
所以我真正需要的是:
我错过什么了吗?有什么建议吗?我知道这可能就是一个例子。但在建议的“输入并查看”流程中,保留这些信息通常非常重要,这样用户就不必在发现错误后重新输入所有内容。这当然是另一种情况,当选择取决于以前的数据时,在这种情况下有许多解决方案。我个人会选择单视图模型,其中更改“基础”数据将清除“依赖项”