我有一个简单的 MvvmCross 5.6.3 应用,我尝试从View A
导航到View B
。 Views'
Fragments
以单 MvxAppCompatActivity
投放。
目前我仍在使用ShowViewModel
进行导航。
View B
导航到 View A
后似乎加载正常
ctor
名为OnCreate
名为ViewModel
构建,初始化并启动OnViewCreated
已调用并ViewModel
设置但是,方向的改变会导致以下情况发生:
ViewModel's
SavedState
致电ctor
名为OnCreate
名为OnViewCreated
名为 View B's
ViewModel
已设置,但由于ctor
未被调用,我不知道如何设置。 <{1}},Init()
或ReloadState()
未被调用。
Start()
将View B
的{{1}}设置为 false 。
所以我希望构建一个全新的IsCachableFragment
和MvxFragmentPresentationAttribute
,并View
来完成标准生命周期。 有谁知道为什么这似乎不起作用?
MvvmCross 5.0以后是否支持使用ViewModel
(即4.x机制)?我不是指混合两者,我的意思是仅使用ViewModel
ShowViewModel
)。
答案 0 :(得分:0)
AFAIK ViewModel
中的Mvx
方向更改不会影响ViewModel
,即它不会再次运行生命周期。
ViewModel's ReloadState是指在您的应用在墓碑形成后恢复生机时调用。
因此,在方向更改后,您将ViewModel
置于更改之前的状态(除非在方向更改的中间发生墓碑化,这是非常罕见的)。你为什么要在改变方向时有一个全新的{your-db-prefix}_options
?
答案 1 :(得分:0)
我已在此处Solution发布了我的问题解决方案。但是,必须有更好的方法来做到这一点,这就是后续行动的重点。