1

VLayoutメンバーを追加した後、身長を取得するのに問題があります

VLayot layout = new VLayout();

プレゼンターにコードがあります

display.getAnswerPanel().removeMembers(display.getAnswerPanel().getMembers());

すべてのメンバーをクリアし、別のメンバーを追加します(ボタンがあり、クリックすると、すべてのメンバーがクリアされ、VLayout新しいメンバーが追加されます)

layout.addMember(new Button("Example"));

offsetHeight開始時にこれを取得する必要がありVLayoutます。ボタンをクリックするたびに、最初にページを読み込んだときに `offsetHeighが1pxになり、次にボタンをクリックすると、正しい値が表示されるという問題があります。 。誰かが私を助けることができますか?

このコードを使ってみました

scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
    layout.getOffsetHeight();
}

しかし、状況は同じです。初めて私は正しい値を持っていません。

4

2 に答える 2

0

ウィジェットがロードされた後、またはボタンのクリック時にのみ、ウィジェットの高さと幅を取得できます。

于 2013-10-01T11:52:04.613 に答える
0

Scheduler#scheduleDeferred() は GWT ループの最後に実行されるため、レイアウトを更新する時間もまだありません。従来のタイマーハックを使用する以外にできることはあまりないと思います(読者が疑わしい場合は、はい、 setTimeout() または Scheduler.get().scheduleWithFixedDelay(cmd, 200) を使用することを意味しました)。

于 2015-11-06T22:24:45.160 に答える