我的应用程序是Xamarin.Android与MvvMCross v 5 .
这是我的主页视图我将拥有所有“DrawerLayout,Toolbar,AppbarLayout,FrameLayout,NavigationView”
[Activity(Label = "View for HomeViewModel",
LaunchMode = LaunchMode.SingleTop
)]
public class HomeView : MvxAppCompatActivity<HomeViewModel>, INavigationActivity
{
}
但在我的Homeview我正在创建相同布局的整个DrawerLayout.so当我点击导航菜单项我切换像这样的片段
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;
}
我的片段
[MvxFragment(typeof(HomeViewModel), Resource.Id.content_frame, true)]
[Register("Peeto.Droid.Views.Fragments.OrdersFragment")]
public class OrdersFragment: BaseStateFragment<OrdersViewModel>
{
}
每当我点击nav_home时,它都会抛出以下错误
未处理的异常:System.InvalidOperationException:您正在尝试关闭当前顶级Activity时与Fragment关联的ViewModel(Peeto.Droid.Views.HomeView未实现IMvxFragmentHost接口!
1 回答
当您的软件包在5.2上时,您似乎正在使用5.0代码 . 此示例仅在5.2上有效 . 您必须将属性更改为
[MvxFragmentPresentation]
并更新为新的演示者 .