【问题标题】:MVVMCROSS Fragment sample not working with rotationMVVMCROSS 片段样本不适用于旋转
【发布时间】:2013-11-16 12:45:59
【问题描述】:

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

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

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

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

【问题讨论】:

标签: android android-fragments xamarin mvvmcross


【解决方案1】:

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

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

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

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


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

【讨论】:

  • 我想非常感谢斯图尔特 :) 继续努力!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多