1

我刚开始学习如何使用 Xamarin Studio 将 MVVMCross 与 Android 结合使用。我对Android开发相当陌生。

我正在将 iOS 应用程序移植到 Android,当我旋转屏幕时,我的应用程序在使用片段时崩溃。我认为问题只是我做错了,但是当我运行附加到示例视频的示例项目时,同样的事情发生了。我得到的错误是“未找到默认构造函数”。

我在 github 上使用的示例应用程序:https ://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/Fragments

有人可以帮我弄清楚为什么会这样吗?

4

1 回答 1

2

经过一番挖掘,我“认为”你在问如何处理 a 的旋转DialogFragment- 我希望我是对的。

如果您确实想在 Android 中处理旋转,那么您必须:

  • 提供默认构造函数,你必须使用片段标签
  • 在处理程序中提供一些代码,Activity.OnCreate以确保在旋转发生后设置DialogFragmentViewModel

我刚刚为您在此提交中提到的示例完成了此操作 - https://github.com/MvvmCross/MvvmCross-Tutorials/commit/ebe1777ec79ee2607b1b863f6b8b3911c12df53f


请注意,要真正完全支持 Activity 生命周期 - 例如,当应用程序或 Activity 被“墓碑化”时包括加载/保存状态 - 那么您还应该比这更进一步 - 应该保存/恢复所有 View 和 ViewModel 状态。MvvmCross 确实在SaveStateReloadStateViewModel 方法中包含一些帮助程序 - 但即使有了这些,完全支持 Activity 生命周期可能会很痛苦(这就是为什么有些应用程序不完全支持它,而是显示“新”显示代替)

于 2013-11-05T20:21:40.987 回答