2016-07-08 3 views
0

Wenn ein Fragment erneut geöffnet wird, stellt Android den Status des Fragments automatisch wieder her und legt die Werte für alle bearbeitbaren Ansichten fest, für die android:id angegeben ist. Bei Verwendung von MVVMCross bewirkt dies, dass der vorherige Status den Quellwert für Bindungen in der aktuellen Ansicht festlegt. Wenn ich zum Beispiel ein Bearbeitungsfragment (das eine EditText für BookTitle mit einer ID hat) für Book_A enthält und das Fragment schließe, wird beim Öffnen des Fragments zum Bearbeiten von Book_B der BookTitle Quellwert für Book_B automatisch mit dem letzten EditText Wert für Book_A aktualisiert . Dies geschieht, weil Android den Status automatisch wiederhergestellt hat.Automatische Wiederherstellung des Fragmentstatus in Android (und MVVMCross) verhindern

Gibt es eine Möglichkeit, zu verhindern, dass Android eine automatische Statuswiederherstellung durchführt?

Antwort

3

Wenn Sie eine MvxCachingFragmentActivity oder die Support-Bibliothek v7 MvxCachingFragmentCompatActivity verwenden, können Sie ShowFragment überschreiben und erzwingen, dass das Fragment jedes Mal neu erstellt wird, wenn es angezeigt wird.

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