6

Ich habe versucht, sowohl ScrollView als auch ListView zu verwenden.Konnte ich die Position von ScrollView nach Back to Prev Fragment wie ListView beibehalten?

Ich habe herausgefunden, dass, wenn ich ListView verwende und ich auf eines der Elemente klicke, das aktuelle Fragment durch das nächste Fragment ersetzen und die Schaltfläche "Zurück" zum vorherigen Fragment drücken. Die Bildlaufposition von ListView bleibt auf derselben Position. Aber wenn ich ScrollView verwende, wird es nicht funktionieren.

Ich verstehe nicht, warum sie anders sind? Und wie kann ich ScrollView nach dem Drücken der Zurück-Taste seine Position beibehalten lassen?

Eigentlich habe ich eine Antwort bei StackOverflow gesucht. Aber ich möchte die Gründe kennen und einen einfacheren Weg finden, wie ScrollView und ListView dasselbe Verhalten haben.

Bitte helfen Sie mir! Vielen Dank!

Antwort

21

Fragmente speichern und stellen die Zustände ihrer Ansichten automatisch wieder her, solange ihnen IDs zugewiesen sind.

Also, wenn Sie eine ID zu Ihrem Scroll, dessen Spiralzustand zuweisen können wieder hergestellt werden:

<ScrollView android:id="@+id/scrollview" 
    ...> 
+1

hatte nicht erwartet, es so einfach wäre: P – Alex

+2

Es ist erstaunlich! Sagt das offizielle Dokument das? – wangqi060934

+1

Es gibt viele Fehlinformationen da draußen und das macht es klar. Zum Beispiel, "Sie müssen onSaveInstanceState/onRestoreInstanceState behandeln", die nicht wirklich beheben, aber die Tatsache, dass Sie eine ID hinzugefügt, wenn dies tun, THAT es behoben. –

Verwandte Themen