您正在尝试关闭当前热门活动

时间:2017-09-16 20:37:59

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

我的应用程序在Xamarin.Android上,MvvMCross v 5 +。

我正在尝试实施以下示例https://github.com/MvvmCross/MvvmCross/tree/develop/TestProjects/Android-Support/Fragments/Example.Droid

这里是我的主页视图我将拥有所有" DrawerLayout,工具栏,AppbarLayout,FrameLayout,NavigationView"



[Activity(Label = "View for HomeViewModel",
          LaunchMode = LaunchMode.SingleTop
          )]
    public class HomeView : MvxAppCompatActivity<HomeViewModel>, INavigationActivity
    {
    }
&#13;
&#13;
&#13;

但是在我的浏览器中,我在同一个布局中创建整个DrawerLayout。所以当我单击导航菜单项时,我会像这样切换片段

&#13;
&#13;
switch (e.MenuItem.ItemId)
                {
                    case Resource.Id.nav_home:
                        ViewModel.ShowViewModelAndroid(typeof(OrdersViewModel));
                        //ListItemClicked(0);
                        break;
                    case Resource.Id.nav_friends:
                        ListItemClicked(1);
                        break;
                    case Resource.Id.nav_profile:
                        ListItemClicked(2);
                        break;
                }
&#13;
&#13;
&#13;

我的片段

&#13;
&#13;
[MvxFragment(typeof(HomeViewModel), Resource.Id.content_frame, true)]
    [Register("Peeto.Droid.Views.Fragments.OrdersFragment")]
    public class OrdersFragment: BaseStateFragment<OrdersViewModel>
    {
    }
&#13;
&#13;
&#13;

每当我点击nav_home时,它就会抛出以下错误

  

未处理的例外:

     

System.InvalidOperationException:您正在尝试关闭当前顶级Activity时与Fragment关联的ViewModel(Peeto.Droid.Views.HomeView未实现IMvxFragmentHost接口!

1 个答案:

答案 0 :(得分:0)

当您的软件包在5.2上时,您似乎正在使用5.0代码。此示例仅在5.2上有效。您必须将属性更改为[MvxFragmentPresentation]并更新为新的演示者。