android - MVVMCROSS fragment 示例不适用于旋转

标签 android android-fragments xamarin mvvmcross

我刚开始学习如何使用 Xamarin Studio 将 MVVMCross 与 Android 结合使用。我是 Android 开发的新手。

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

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

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

最佳答案

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

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

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

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


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

关于android - MVVMCROSS fragment 示例不适用于旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19792461/

相关文章:

android - MvvmCross绑定(bind)+Android EventHandler

java - 我如何启用/禁用 Android 上的以太网连接?

java - 如何调查随机的 Android native 函数调用错误?

android - 从 android 内置电话簿中获取电子邮件 ID 和姓名?

java - 处理android中的后退按钮操作

java - 在Android中,如何将数据从类传递到相应的布局/fragment 文件?

android - popBackStack导致反复调用fragment的oncreateView

c# - 禁用默认 Android 键盘上的按键

java - GPS、传感器和唤醒

android - 从机超时