具有多个片段的ViewModel

时间:2018-10-02 19:48:22

标签: android

关于底部导航视图,我只是在考虑MVVM。

在这种情况下,这是一个具有多个片段的活动。如果我使用ViewModel,则视图模型将保存所有片段的数据,对吗?这会导致内存泄漏或性能下降吗?

如果我不使用视图模型,那么我一次只能保存一个片段数据。

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

有多种实现方法。请记住,ViewModel不必仅由Activity使用,它可以由Fragment甚至是自定义View使用。

在您的情况下,如果您有多个片段,则可以为每个片段创建一个ViewModel(如果它们当然不同)。

唯一会摆脱MVVM模式的是片段和活动之间的通信。

如果您仍然想让ViewModel负责告知活动何时替换/删除/更改片段,则可以在每个模型中定义一个接口(或通用接口),以用作回调,然后可以在onAttach或您适合的任何位置的ViewModel上设置此回调。

现在,您的片段可以将通知活动的职责传递给ViewModel。我认为这是在活动/片段通信的情况下接近MVVM模式的一种方法,而不会带来太多麻烦。

相关问题