MvvmCross Android:屏幕旋转后绑定丢失

时间:2014-03-15 22:40:44

标签: c# android mvvmcross

我的绑定工作正常,但在屏幕旋转后我松散绑定。

在OnCreateView中我尝试按标签恢复片段,如果FindFragmentByTag返回null我创建一个这样的新实例:

protected virtual TFragmentType PutFragment<TFragmentType, TViewModelType>(int oldId, TViewModelType vm)
        where TFragmentType : FragmentBase, new()
        where TViewModelType : IViewModelBase
    {
        var tag = typeof(TFragmentType).FullName;
        var fragment = SupportFragmentManager.FindFragmentByTag(tag) as TFragmentType;
        if (fragment == null)
        {
            fragment = new TFragmentType() { ViewModel = vm };
            SupportFragmentManager.BeginTransaction().Replace(oldId, fragment, tag).Commit();
            fragment.RetainInstance = true;
        }
        return fragment;
    }

当GetFragmentByTag返回一些东西时出现问题(在我的情况下,在sctreen旋转之后)。

截图

轮换前:

Normal http://i58.tinypic.com/2j3sd2u.jpg

后:

Empty http://i60.tinypic.com/jz8s8w.jpg

提前谢谢。

2 个答案:

答案 0 :(得分:7)

谢谢你们,我指定了#34; ConfigurationChanges&#34;在活动属性

[Activity (ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.KeyboardHidden)]

现在工作正常

答案 1 :(得分:2)

(ConfigurationChanges = ConfigChanges.Orientation)就够了;