Ich habe eine Android-Anwendung, die Textfeld für die Suche, einige Schaltflächen, Webviews (1 sichtbar 2 unsichtbar) und eine Admob-Adview hat. Die App sucht nur auf einigen speziellen Websites und es funktioniert gut auf Emulator, Samsung Galaxy Geräte. aber ich habe Probleme mit dem HTC One X (weiß nicht über andere HTC-Modelle).
Das Problem ist, wenn Sie auf eine Suchschaltfläche klicken, lädt die Webansicht die Seite. Dann "manchmal", wenn Sie versuchen, sogar für das Scrollen anzufassen, kehrt das Webview nur zum total weißen Bereich mit Rollbalken zurück. Dies tritt besonders nach der Anzeigenaktualisierung auf. sogar manchmal wird der Hintergrund und der Textbereich von ad komplett weiß - also nicht lesbar. Auf der Anzeige bleiben nur blaue Pfeile und blaue Telefonanrufe sichtbar!
Hat jemand irgendwelche Probleme wie diese und jede Lösung? Danke im Voraus.
Hier ist mein Layout xml:
%Vor%Es gibt viele Probleme, wenn hardwarebeschleunigte Ansichten übereinander angezeigt werden. Ich würde Ihr Layout überarbeiten, um Webansichten oder Bildlaufansichten nicht zu überlappen, oder Hardwarebeschleunigung deaktivieren.
Sie können die Hardwarebeschleunigung in Ihrem WebView deaktivieren, aber tun Sie dies auf eine Weise, die ältere Geräte nicht beschädigt:
%Vor%Vorbehalte
Das ist in Jelly Bean entsprechend dem Bug behoben, aber ich konnte das persönlich nicht bestätigen.
Ich habe dieses Problem mit einzelnen Webansichten auf HTC-Handys gesehen. Einer der Kommentare in diesem Bug-Thread einige Vorschläge macht WebView Leistung optimieren . Der Fehler ist über 3D-Transformationen, aber ich habe die Bemerkung der Techniken als nützlich für WebViews im Allgemeinen.
gefundenDiese Präsentation bei Google I / O 2012 bietet auch einige gute Informationen über das Thema von WebViews im Allgemeinen.
Beide schlagen vor, dass dynamischer Inhalt auf einer "Ebene" platziert wird. Dies bedeutet, dass diese CSS-Regel dem Element zugewiesen wird:
%Vor%Diese Regel Durch die Anwendung, Android „erzählt den Browser, um die Schicht auf eine eigenen Textur vorab Verbund so kann es (fast) für später animiert werden frei“ Dieses Verhalten ist nicht frei - es mehr Speicher verbrauchen kann, so würde ich mich bewerben es vernünftig. Die oben verlinkte Präsentation erklärt sehr gut warum.
In meinem Fall konnte ich einen „weißen Bildschirm“ vermeiden, indem diese Regel auf einen DIV Anwendung, die die gesamte Seite umbricht. Die Seite wird manchmal für eine Sekunde weiß dargestellt und dann den Inhalt gerendert. Ich habe nicht gesehen, dass die "weiße" Seite für immer bestehen bleibt, wie ich es vor der Anwendung dieser Technik getan habe. Ich habe den Speicherverbrauch nicht außer Kontrolle geraten. YMMV.
Ich würde auch vorschlagen, dass Sie tun, was Sie können, um Ihr Layout zu vereinfachen. Leichter gesagt als getan, aber einige gute Vorschläge in die Dokumentation gefunden werden können.
Tags und Links android webview htc-android