添加成员后,SmartGwt获得VLayout高度

时间:2013-01-14 12:02:49

标签: gwt smartgwt

我在向其添加成员后获得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();
}

但情况是一样的,我第一次没有正确的价值。

2 个答案:

答案 0 :(得分:0)

只有在加载小部件或点击按钮后,我们才能获得任何小部件的高度和宽度。

答案 1 :(得分:0)

Scheduler#scheduleDeferred()在GWT循环结束时执行,因此布局仍然没有时间更新。我想除了使用传统的计时器黑客之外你没有什么可做的(如果有任何读者有疑问,是的,我的意思是使用setTimeout()或Scheduler.get()。scheduleWithFixedDelay(cmd,200))。