android 一个 View 一定只有一个 ViewModel 吗?

Can a View necessarily have only one ViewModel in android?

我正在学习android

我知道 ViewModel 可以有 multiple views (n:1)

但是反过来呢?

我在某处看到 viewsviewmodels 也应该是 1:1

例如,假设我们有fragments A, B, C (views)和以下情况:

AB 通过 SharedViewModel 传递数据。 (from A to B)

CB也通过SharedViewModel传递数据(from C to A)。

AB 有一个共同点 viewmodel.

BC 有一个共同点 viewmodel.

如果是,则 Btwo viewmodels

看到这个的时候 视图可以有 multiple viewmodels?

不是每个视图只需要一个视图模型吗?

Fragments 没有要求只有 1 个 ViewModel

通常你至少有 2 个,activity 一个(所有子片段都可以访问)和一个片段,但没有限制,除了对同一个片段有多个 ViewModel 会增加业务逻辑的复杂性,应该避免。

如果您检查 Google 参考应用程序,例如 iosched,您可以看到他们使用片段一和 activity 一个(在需要的地方)。

如果您使用单个 Activity 模式会更容易,更多信息在此 GoogleIO/2018 video