android 一个 View 一定只有一个 ViewModel 吗?
Can a View necessarily have only one ViewModel in android?
我正在学习android
。
我知道 ViewModel
可以有 multiple views
(n:1
)
但是反过来呢?
我在某处看到 views
和 viewmodels
也应该是 1:1
。
例如,假设我们有fragments A, B, C (views)
和以下情况:
A
和 B
通过 SharedViewModel
传递数据。 (from A to B
)
而C
和B
也通过SharedViewModel
传递数据(from C to A
)。
A
和 B
有一个共同点 viewmodel
.
B
和 C
有一个共同点 viewmodel
.
如果是,则 B
有 two viewmodels
。
看到这个的时候
视图可以有 multiple viewmodels
?
不是每个视图只需要一个视图模型吗?
Fragments
没有要求只有 1 个 ViewModel
。
通常你至少有 2 个,activity 一个(所有子片段都可以访问)和一个片段,但没有限制,除了对同一个片段有多个 ViewModel
会增加业务逻辑的复杂性,应该避免。
如果您检查 Google 参考应用程序,例如 iosched,您可以看到他们使用片段一和 activity 一个(在需要的地方)。
如果您使用单个 Activity 模式会更容易,更多信息在此 GoogleIO/2018 video
我正在学习android
。
我知道 ViewModel
可以有 multiple views
(n:1
)
但是反过来呢?
我在某处看到 views
和 viewmodels
也应该是 1:1
。
例如,假设我们有fragments A, B, C (views)
和以下情况:
A
和 B
通过 SharedViewModel
传递数据。 (from A to B
)
而C
和B
也通过SharedViewModel
传递数据(from C to A
)。
A
和 B
有一个共同点 viewmodel
.
B
和 C
有一个共同点 viewmodel
.
如果是,则 B
有 two viewmodels
。
看到这个的时候
视图可以有 multiple viewmodels
?
不是每个视图只需要一个视图模型吗?
Fragments
没有要求只有 1 个 ViewModel
。
通常你至少有 2 个,activity 一个(所有子片段都可以访问)和一个片段,但没有限制,除了对同一个片段有多个 ViewModel
会增加业务逻辑的复杂性,应该避免。
如果您检查 Google 参考应用程序,例如 iosched,您可以看到他们使用片段一和 activity 一个(在需要的地方)。
如果您使用单个 Activity 模式会更容易,更多信息在此 GoogleIO/2018 video