本文介绍了SmartGwt在添加成员后获得VLayout高度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我添加一个成员后,遇到 VLayout 高度问题

  VLayot layout = new VLayout(); 

主持人我有代码

  display.getAnswerPanel()removeMembers(display.getAnswerPanel()getMembers()。)。 

清除所有成员,并添加另一个(我有按钮,当我舔他们时,它会清除所有 VLayout 并添加新成员)

  layout.addMember(new Button (例)); 

我需要获得 offsetHeight code> VLayout 在开始和每次我点击按钮,我的问题是,当我第一次加载页面时,我的offsetHeigh是1px,每次我点击按钮时都是OK它显示出正确的价值。有人能帮我吗?



我试着使用这段代码

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

但情况相同,第一次我没有正确的值。 解决方案

Scheduler#scheduleDeferred ()在GWT循环结束时执行,所以还没有时间让布局更新。我想除了使用传统的定时器破解之外,没有什么可以做的了(如果有任何读者有疑问,是的,我的意思是使用setTimeout()或Scheduler.get()。scheduleWithFixedDelay(cmd,200))。


I have problem a with getting VLayout height after I add a member to it

VLayot layout = new VLayout();

in presenter I have code

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

which clear all members, and I add another (I have buttons, when I clik them, it clears all VLayout and adds new members)

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

I need to get offsetHeight of this VLayout on start and everytime I click the button, my problem is that in first time when I load the page, my `offsetHeigh is 1px, each next time when I click button is ok, it shows me the correct value. Can someone help me?

I tried to use this code

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

but the situation is the same, First time I don't have the correct value.

解决方案

Scheduler#scheduleDeferred() executes at the end of the GWT loop, so there's still no time for the layout to update either. I guess there's not much you can do besides using the traditional timer hack (in case any reader is in doubt, yes, I meant using setTimeout() or Scheduler.get().scheduleWithFixedDelay(cmd, 200) ).

这篇关于SmartGwt在添加成员后获得VLayout高度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-28 19:29