2 Stimmen

Android Widget zwingt RemoteView, den Cache zu löschen?

Ich entwickle ein Widget, bei dem die Hoch- und Querformat-Layouts in /layout bzw. /layout-land gespeichert werden. Jede Layout-Datei ist gleich benannt, wurde aber für die Formatierung Änderungen auf der Grundlage ihrer Ausrichtung Unterschiede geändert.

Wenn ich ein Widget in einer der Ausrichtungen beginne und es dort behalte, funktioniert es gut... aber in dem Moment, in dem ich die Ausrichtung wechsle, geht das ganze Layout durcheinander.

Nach einer Suche im Internet habe ich herausgefunden, dass das Android-System das neueste RemoteView aus dem Cache lädt. Aka, wenn ich das Widget es im Querformat gestartet, wird das Querformat-Layout zwischengespeichert und verwendet, wenn oritentation ändern.

Ich habe alles versucht, was mir einfiel, um dies zu verhindern, aber ohne Erfolg. Weiß jemand, ob es möglich ist, den Android RemoteView-Cache zu löschen und das Laden des korrigierten Layouts zu erzwingen?

Gracias

EDIT :

Ich habe eine Lösung gefunden, wenn auch eine etwas umständliche...

Ich habe ein "Wrapper"-Layout erstellt, das nur ein LinearLayout mit einer ID enthält, und dann Unterlayouts erstellt, bei denen die Querformatversionen ein _land am Ende des Namens haben.

in der onUpdate-Methode und dem Dienst, der das Widget aktualisiert, prüfe ich die Ausrichtung des Bildschirms, wähle dann programmatisch entweder die _land- oder die non-_land-Version aus und füge sie dem Wrapper-Layout hinzu.

Ich kann nicht glauben, dass Google dies nicht einfacher gemacht hat, und es ist unglaublich frustrierend, dass ich solch ein programmatisches Verhalten aus etwas erzwingen muss, das mit Hilfe von XML-Konfigurationen ganz natürlich sein sollte.

0voto

Femi Punkte 63590

Sie müssen möglicherweise Folgendes verwenden layout-land y layout-port als die Verzeichnisse (im Gegensatz zu layout y layout-land ), damit es richtig funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X