MVVM的碎片交叉嵌套使Fragment的ViewModel属性为NULL

时间:2016-06-08 15:41:02

标签: android android-fragments mvvm xamarin.android mvvmcross

目前我在我的android项目中使用MVVM Cross 4.1.4。我没有太多时间来探索样本,因此我已经/我正在努力学习 并在我的android企业应用程序中实现MVVM Cross框架。 我有两个巨大的问题让我失眠,我相信有人可能会面对同样的问题。

在我的应用程序设计中,我做了一个单独的活动,而所有其他屏幕都只是片段,这些片段并不完全受到动作的控制。 该活动只需点击一些没什么特别的东西就可以调用ShowViewModel<SomeViewModel>

在一个本身就是片段的特定屏幕中,我有一个视图分页器,它是片段,所以它是一个片段的嵌套(层次结构中的第三个片段)我注意到MvxFragment具有的ViewModel属性在第三个中为空水平嵌套。
    请参阅代码

public class MainActivity : MvxCachingFragmentCompatActivity<MainViewModel>
{
}

public class MainViewModel : MvxViewModel
{
   ShowViewModel<FirstViewModel>();
}

public class FirstViewModel : MvxViewModel
{
}

[MvxFragment(typeof(MainViewModel), Resource.Id.content_frame)]
public class FirstFragment : MvxFragment<FirstViewModel>
{
}

public class SecondViewModel : MvxViewModel
{
}

[MvxFragment(typeof(MainViewModel), Resource.Id.content_frame)]
[MvxFragment(typeof(FirstViewModel), Resource.Id.content_frame)]
public class SecondFragment: MvxFragment<SecondViewModel>
{
}
  • 问题出在我必须管理三个片段的工作流程的第一个片段内,然后可以在其中包含更多片段,即4个片段。
  • 问题出在SecondFragment内部,由FirstFragment的viewpager适配器托管,ViewModel属性为null,为什么会这样?

因为在FirstFragment中,ViewModel属性不会出现空值,我可以轻松点击我的PCL来获取数据。 我知道我做错了什么,任何帮助将不胜感激。我的MVVM android项目有很多问题需要解决。

0 个答案:

没有答案