我刚开始学习如何使用Xamarin Studio在Android上使用MVVMCross。我是Android开发的新手。
我正在将iOS应用移植到Android上,当我旋转屏幕时,我的应用在使用片段时崩溃了。我认为问题只是我做错了什么但是当我运行附加到示例视频的示例项目时,同样的事情发生了。我得到的错误是“找不到默认构造函数”。
我在github上使用的示例应用程序:https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/Fragments
有人可以帮我解释为什么会这样吗?
答案 0 :(得分:2)
经过一番挖掘后,我“想”你正在询问如何处理DialogFragment
的轮换 - 我希望我能做到这一点。
如果你想在Android中处理轮换,那么你必须:
Activity.OnCreate
处理程序中提供一些代码,以确保在轮换发生后DialogFragment
设置了ViewModel
。我刚刚为您在此提交中提及的示例执行此操作 - https://github.com/MvvmCross/MvvmCross-Tutorials/commit/ebe1777ec79ee2607b1b863f6b8b3911c12df53f
请注意,要真正完全支持Activity生命周期 - 例如当App或Activity被“逻辑删除”时包括加载/保存状态 - 那么你还应该更进一步 - 应该保存/恢复所有View和ViewModel状态。 MvvmCross确实在SaveState
和ReloadState
ViewModel方法中包含了一些帮助 - 但即使使用这些帮助,那么完全支持Activity生命周期可能会非常痛苦(这就是为什么有些应用程序不完全支持它,而是显示“新”显示代替)