什么是在MvvmCross 4.1.4中实现片段的正确方法

时间:2016-05-19 09:32:08

标签: android-fragments xamarin mvvmcross

我正在寻找一个示例或文档来处理当前mvvmcross版本中的片段。我发现了很多关于旧版本的信息,但我很困惑我现在应该如何实现它。

到目前为止,我发现的最佳信息在本文中: here

但是它已经超过一年了,我认为已经有了更新/更好的方法。

我想要的是拥有一个Activity(如在SPA中或拥有MainView),此活动应该包含一个或两个片段,并且在按钮上单击我想导航/更改为不同的片段和当前的片段导航背板。或者是否建议仅使用导航活动而不实施SPA?

感谢您的帮助! 蒂莫

1 个答案:

答案 0 :(得分:14)

在MvvmCross中使用片段的新方法是使用片段上的属性。

[MvxFragment(typeof(ActivityHostViewModel), Resource.Id.content_frame, true)]
public class HomeFragment : BaseFragment<HomeViewModel>
{
}

MvvmCross演示者将识别出这是一个片段,并将其显示在附加到主机视图模型的主机活动中。

要在演示者中支持片段,您需要将以下内容添加到setup.cs

protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
    var mvxFragmentsPresenter = new MvxFragmentsPresenter(AndroidViewAssemblies);
    Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(mvxFragmentsPresenter);
    return mvxFragmentsPresenter;
}

此处提供完整示例:https://github.com/MvvmCross/MvvmCross/tree/develop/TestProjects/Android-Support/Fragments