防止在Android(和MVVMCross)

时间:2016-07-08 14:39:18

标签: android android-fragments mvvmcross

重新打开片段后,Android会自动恢复片段的状态,并为指定了android:id的任何可编辑视图设置值。使用MVVMCross时,这会导致先前的状态在当前视图中设置绑定的源值。例如,如果我为Book_A打开一个编辑片段(其中EditTextBookTitle有一个ID)并关闭片段,则在打开片段以编辑Book_B时BookTitle源值对于Book_B,将使用Book_A的最后EditText值自动更新。这是因为Android会自动恢复状态。

有没有办法阻止Android进行自动状态恢复?

1 个答案:

答案 0 :(得分:3)

如果您使用MvxCachingFragmentActivity或通过支持库v7 MvxCachingFragmentCompatActivity,则可以覆盖ShowFragment并强制每次显示片段时重新创建片段。

protected override void ShowFragment(
    string tag, 
    int contentId, 
    Bundle bundle, 
    bool forceAddToBackStack = false, 
    bool forceReplaceFragment = false)
{
    base.ShowFragment(tag, contentId, bundle, forceAddToBackStack, true);
}