我正在使用MvvmCross爲iOS和Android編寫跨平臺的應用程序。適當的配置更改處理
Android版本使用嵌套的片段。例如,主視圖是一個導航抽屜,其各種導航中心視圖都是碎片,這些碎片可以是包含其他碎片的拆分視圖,並且最重要的是,每個視圖也可以顯示對話框碎片。
此外,並非所有ViewModel都通過ShowViewModel()顯示,其中一些更像PropertyChanged事件提供程序,如N=32 video中所示。
這工作正常,直到發生配置更改(通常是旋轉設備)。當片段視圖被重新創建時,它們的視圖模型不會被設置爲空。這在以下MvvmCross issue #636暗示,斯圖爾特也提到他希望該項目提出一些最佳實踐意見。
我現在的問題是最佳做法是什麼?如果您必須正確支持MvvmCross中的Android配置更改,您會做什麼?
我試着解決上面鏈接問題中所概述的問題,即通過某些形式的ViewModel註冊表在父ViewModels中,還試圖在保存其實例狀態時序列化Fragment的ViewModel,但成功次數有限。結果最好感到駭人聽聞。問題仍然是Fragment不知道如何在MvvmCross中重新創建View Model。哦,並且禁用設備輪換上的配置更改不算作答案。 ;-)