Android mvvm 我应该使用 2 个 ViewModel,在两个视图中使用 1 个 ViewModel,还是在父视图中使用 1 个 activity?

Android mvvm should I use 2 ViewModels, 1 ViewModel in two views, or 1 in Parent activity?

假设情况:ProfileActivity 和 EditProfileActivity 都从 BaseActivity 扩展而来,如果每个 activity 都有自己的视图模型(ProfileViewModel 和 EditProfileViewModel),请在两个活动中使用相同的视图模型或从父级继承模型但在每个 activity?

中与它相反

谢谢

这取决于您的 ViewModel 的范围。如果您希望您的活动相互通信,那么您可以创建一个作用域为您的 BaseActivity 的 BaseViewModel,并使用它在 ProfileActivity 和 EditProfileActivity 之间执行 IPC,前提是它们会扩展 BaseActivity。

您还可以创建三个视图模型,每个视图模型一个。将 BaseViewModel 用于 IPC,将 ProfileViewModel 和 editProfileViewModel 用于委托,其中活动将自行点亮并将所有内容委托给它们的 viewModel。这可以通过结合使用 LiveData 观察器和 DataBinding 来实现。