当我尝试在旋转时手动重新补充片段视图模型时,我遇到了问题。一旦我的视图模型被填充,当我旋转片段时,一切似乎都能正常工作,我所做的就是:
this.viewmodel = foo
但如果我尝试在填充期间(例如从Web服务)旋转片段,然后在填充完成之前重新附加存储的viewmodel,则视图似乎不能正确绑定。
我知道缺少来源(在这篇文章中),但我想知道这是否应该在原则上有效,如果有办法解决绑定问题(虽然存在绑定上下文等)如果确实如此问题?
如果我在填充之后再次旋转片段,则视图将正常填充。
答案 0 :(得分:0)
我想我可能已经解决了我遇到的问题。我使用以下代码运行代码 - 。
TypedViewModel.PopulateAndRun(() =>
{
DoSomething();
});
问题似乎是这个动作只被调用一次,可能被解雇的动作是旧视图而不是新视图。
我尝试在上面的代码之外添加以下代码,并且它有效
TypedViewModel.OnPopulated += ()
{
DoSomething();
});
答案 1 :(得分:0)
解决此问题的一种方法是指示Android在配置更改时不要重新创建活动。确保在activity属性中指定了“ConfigurationChanges”并覆盖OnConfigurationChanged。
[Activity( Label = "Sample", ConfigurationChanges = global::Android.Content.PM.ConfigChanges.Orientation | global::Android.Content.PM.ConfigChanges.ScreenSize | global::Android.Content.PM.ConfigChanges.KeyboardHidden )] public class SampleActivity : MvxFragmentActivity { //... public override void OnConfigurationChanged(global::Android.Content.Res.Configuration newConfig) { base.OnConfigurationChanged(newConfig); } }