我在使用MvvmCross 3.5时试图让Fragments工作。
我有以下片段:
public class MainView
: MvxFragment<MenuView>
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
this.EnsureBindingContextIsSet(savedInstanceState);
var view = this.BindingInflate(Resource.Layout.MainView, null);
return view;
}
}
我一直在使用以下代码手动初始化ViewModel:
var loaderService = Mvx.Resolve<IMvxViewModelLoader>();
ViewModel = (T)loaderService.LoadViewModel(
new MvxViewModelRequest(typeof(T), null, null, null), null);
这样可以正常工作,除非恢复片段,此时应用程序会以NullReferenceException
炸毁。
我现在正在尝试使用MvxCachingFragmentActivity
来处理片段的生命周期,但无法在其上找到任何文档。
我已注册片段:
RegisterFragment<MainView, MainViewModel>(typeof(MainView).Name, bundle);
然后显示一个:
ShowFragment(typeof(MainView).Name, Resource.Id.content_frame, bundle);
片段加载但ViewModel为null。我错过了一些明显的东西吗?
答案 0 :(得分:1)
[MvxOwnedViewModelFragment]
从3.5.1 开始,需要片段上的