Ich brauche, um die Größe eines absolutePanel in Bezug auf seine Kind-Größe zu setzen, aber die getOffset* Methoden zurückgeben 0, weil (ich denke) das Kind noch nicht angezeigt wurde.
Ein schnelles Beispiel:
AbsolutePanel aPanel = new AbsolutePanel();
HTML text = new HTML(/*variable lenght text*/);
int xPosition = 20; // actually variable
aPanel.add(text, xPosition, 0);
aPanel.setSize(xPosition + text .getOffsetWidth() + "px", "50px"); // 20px 50px
Ich könnte mein Problem auch lösen, indem ich die AbsolutePanel-Größe verwende, um die untergeordnete Position und Größe festzulegen:
AbsolutePanel aPanel = new AbsolutePanel();
aPanel.setSize("100%", "50px");
HTML text = new HTML(/*variable lenght text*/);
int xPosition = aPanel.getOffsetWidth() / 3; // Once again, getOffsetWidth() returns 0;
aPanel.add(text, xPosition, 0);
In beiden Fällen muss ich einen Weg finden, entweder:
- die Größe eines Widgets abrufen, das noch nicht angezeigt wurde
- benachrichtigt werden, wenn ein Widget angezeigt wird