Ich habe einen FragmentPagerAdapter, um ungefähr 6 Tabs anzuzeigen, die alle ihre Daten von einem Webserver laden. Eine der Register enthält ein WebView, das ein Bild von meinem Server lädt. Die serverseitigen Kosten für die Erstellung des Images sind hoch, und daher möchte ich die Anzahl der Aufrufe zum erneuten Laden des WebView reduzieren. Für die Nicht-WebView-Registerkarten konnte ich meinen Status speichern (z diese, nur ein einfaches Array) und sie wiederherstellen, wie Registerkarten durchlaufen werden.
Problem:
Berücksichtigte Lösungen:
Es klingt wie das alte Verhalten von WebView.saveState ( ) wäre perfekt gewesen ...
Das Problem scheint zu sein, dass Sie Ihre eigenen Ergebnisse löschen.
Während Sie bei einer Konfigurationsänderung ein neues WebView
benötigen, brauchen Sie andernfalls kein neues WebView
. Und wenn du bereits WebView
hast, musst du nichts dazu sagen.
Also, ich würde es versuchen:
WebView
, die Sie in onCreateView()
in einem Datenelement des Fragments onCreateView()
aufblasen, wenn dieses Datenelement null
ist
loadUrl()
nur auf, wenn Sie das Layout aufgebläht haben (Wenn Sie den WebView
im Java-Code erstellen, ersetzen Sie "das Layout aufblasen" mit "create the WebView
über seinen Konstruktor")
Wenn der Inhalt des Fragments mehr als WebView
beträgt, müssen Sie auch die Root-Ansicht beibehalten, die Sie in einem Datenelement aufgebläht haben, sodass Sie diese aus onCreateView()
zurückgeben können.
Tags und Links android android-fragments android-webview