Screen A
,
Screen B
或Screen C
时,the in in in and the the the the tavigation按钮等。 在这种情况下,如何应用MVVM模式?该应用程序应该为
Scaffold
加载App.kt
,在跨屏幕上管理共享逻辑(例如可从任何屏幕触发的导航,对话框或共享逻辑)?
地,在每个屏幕上(例如,
AppViewModel
,
App.kt
等)都可以拥有自己的ViewModel,并同时与
ScreenAViewModel
共存吗?
the总结,该应用具有固定的导航栏和其他在ScreenBViewModel
上总是可见的共享功能,我想了解这两个视图模型(APP和Screen)是否正确以立即共存。
thanks
在这种情况下,如何应用MVVM模式?
我想提供不同的实现角度。IMO,您应该只有一个视图模型。例如,您可以有几个顶级组合物本身代表屏幕,然后在它们之间切换与更改视图模型中的状态枚举一样微不足道,该枚举说明您当前想显示哪个屏幕。 但是,如果您坚持使用多种视图模型,
我不会阻止您...所以:
始终将the以始终显示底部栏, 创建一个包含底部bar功能逻辑的公共全局组合和一个AppViewModel
类。
扩展视图模型,并在您的视图中致电您的公众组合。如果在底栏中有任何共享状态,则可以将其保存在baseViewModel companion对象或另一个共享对象中。 I假设底部栏可与视图模型相互作用,因此可以在参数中接受它。