使用MvxTabsFragmentActivity处理片段视图模型的初始化

时间:2014-06-11 05:08:38

标签: xamarin xamarin.android mvvmcross

MvxTabsFragmentActivity似乎没有在片段视图模型上调用Init()方法,因为选中了标签(根本没有)。通过查看MvxTabsFragmentActivity的来源确认了这一点。

这有点令人讨厌,因为它打破了视图模型要实现的Init / Start模型(如果他们不知道它们被用作标签)。

对于与标记片段一起使用的视图模型,处理初始化(以及其他生命周期阶段)的推荐模式是什么?

1 个答案:

答案 0 :(得分:1)

MvxTabsFragmentActivity适用于预构建的视图模型 - 使用以下API传递ViewModel:

    protected void AddTab<TFragment>(string tagAndSpecName, string tabName, Bundle args,
                                     IMvxViewModel viewModel)

创建ViewModel的责任是调用者 - 如果调用者使用new创建它们,则不会调用Init()Start()。如果来电者使用IMvxViewModelLoader.Load(),则会调用Init()Start()