可以立即应用App ViewModel和屏幕ViewModel共存? 我在JetPack中开发一个使用主文件应用程序的应用程序。

问题描述 投票:0回答:0
总是可见。当导航至

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假设底部栏可与视图模型相互作用,因此可以在参数中接受它。


android kotlin mvvm android-jetpack-compose android-viewmodel
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.