Я пытаюсь заставить фрагменты работать при использовании MvvmCross 3.5.
У меня есть следующий фрагмент:
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. Я упускаю что-то очевидное?