重新打开片段后,Android会自动恢复片段的状态,并为指定了android:id
的任何可编辑视图设置值。使用MVVMCross时,这会导致先前的状态在当前视图中设置绑定的源值。例如,如果我为Book_A打开一个编辑片段(其中EditText
为BookTitle
有一个ID)并关闭片段,则在打开片段以编辑Book_B时BookTitle
源值对于Book_B,将使用Book_A的最后EditText
值自动更新。这是因为Android会自动恢复状态。
有没有办法阻止Android进行自动状态恢复?
答案 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);
}