我想要一个单一的 Activity,并将我的所有 View 都作为片段。
我之前已经这样做过,将我的第一个 View 作为 Activity ,然后立即导航到片段。所有片段都放置在“Activity ” View 的内容框架中。
我通过从 Activity 的 OnCreate 方法导航到 Fragment 来完成此操作。这曾经有效,但是使用 MvvmCross 我无法让它工作。
我在 Activity View 模型上有一个执行导航的方法
public async Task ShowMainView()
{
await navigationService.Navigate<MainViewModel>();
}
这是从 Activity 中的 OnCreateView 调用的。
ViewModel.ShowMainView.ContinueWith((task) =>
{
// have now completed navigation
});
我发现 MainViewModel 构造函数被调用,但没有其他内容?
关于为什么这不起作用或者我应该如何做得更好的任何想法。
最佳答案
问题不在于我从哪里进行导航,而是使用的演示器存在问题。我发现它抛出了消息异常
Cannot create Fragment 'MainView'. Use the MvxAppCompatViewPresenter when using Android Support Fragments.
我通过在 Android 项目的 Setup.cs 文件中设置 MvxAppCompatViewPresenter 解决了该问题,如下所示
protected override IMvxAndroidViewPresenter CreateViewPresenter()
{
return new MvxAppCompatViewPresenter(this.AndroidViewAssemblies);
}
关于android-fragments - MvvmCross V5自动从Activity导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47208205/