GWT Größe und Zentrierung Popup wenn Browserfenster Größe ändern

8

Ich muss das Popup in der Größe des Browserfensters vergrößern. Ich habe ResizeHandler in meinem Popup-Konstruktor hinzugefügt, aber nach einigen Browsern, die die Funktion center () zentrieren, erzeuge ein neues Popup, anstatt den aktuellen zu zentrieren. Hier ein paar Code was ich schon ausprobiert habe. Bitte sagen Sie mir, wie Sie das lösen oder einige Lösungen vorschlagen können.

%Vor%

Hinzugefügt:

Ich habe ein einfaches Projekt erstellt, das das Problem veranschaulicht: Klasse des Popups

%Vor%

XML für uibinder

%Vor%

und Hauptklasse

%Vor%

Was mache ich falsch? Oder vielleicht ist es ein Fehler von GWT?

    
Taras Lazarenko 11.05.2012, 14:20
quelle

1 Antwort

7

Das Problem hat wahrscheinlich überhaupt nichts mit der Größenänderung zu tun. Es ist nur das:

  • Sie erstellen das erste PopupPanel, wenn Sie auf die Schaltfläche "Popup anzeigen" klicken.
  • Für dieses Panel registrieren Sie einen ResizeHandler im Fenster.
  • Wenn Sie auf "testButton" klicken, blenden Sie das Popup aus, heben Sie aber nicht die Registrierung von ResizeHandler auf.
  • Wenn Sie dann erneut auf "Popup anzeigen" klicken, wird ein weiteres Popup mit einem anderen ResizeHandler erstellt.

Also haben wir zwei Popups und zwei ResizeHandlers.

Jetzt, bei der Größenanpassung, rufst du 'center ()' an (was in beiden ResizeHandlern passiert) - was den Nebeneffekt hat, dass es die Popups anzeigt (wenn sie nicht angezeigt werden). Das erste Popup ist derzeit vom DOM getrennt, aber GWT ist schlau genug, es wieder anzuhängen. Aber jetzt siehst du sie beide gleichzeitig.

Die Lösung besteht darin, den Größenänderungs-Handler zu entfernen, wenn Sie das Popup ausblenden.

Sie fragen sich vielleicht, dass es keine Methode com.google.gwt.user.client.Window.removeResizeHandler() gibt. Es funktioniert ein bisschen anders:

%Vor%

Sie sollten auch sicherstellen, dass die Schaltfläche "Popup anzeigen" deaktiviert wird, während das Popup angezeigt wird.

    
Chris Lercher 11.05.2012, 18:30
quelle

Tags und Links