java端元素的GWT高度始终为0
我可能有一个愚蠢的问题,请接受我的道歉,但我只使用了GWT一个月 我想使用另一个面板的面板高度,但我得到了0值:java端元素的GWT高度始终为0,java,gwt,Java,Gwt,我可能有一个愚蠢的问题,请接受我的道歉,但我只使用了GWT一个月 我想使用另一个面板的面板高度,但我得到了0值: FlowPanel first = new FlowPanel(); Label flexLabel = new Label("some content"); Button button = new Button(); first.add(flexLabel); first.add(button); FlowPanel second = new FlowPanel(); sec
FlowPanel first = new FlowPanel();
Label flexLabel = new Label("some content");
Button button = new Button();
first.add(flexLabel);
first.add(button);
FlowPanel second = new FlowPanel();
second.setHeight(first.getElement().getClientHeight()); // set 0 value always
为什么我总是得到0??我知道GWT引擎在将java代码转换为javascript时会在运行时设置此值,但为什么不设置适当的值呢?
如何解决这个问题?在浏览器完成渲染之前,GWT中的所有小部件(包括面板)的大小都为零 你有两个选择
何时调用此代码?请记住,客户端高度仅在呈现ui后可用。除了使用这种技术之外,还有其他方法来布局UI。second.setHeight(first.getElement().getClientHeight());-这叫。我认为只有在呈现ui之后,高度才可用。什么是“布局”??问题是,我必须有相同的高度,第一个面板的第二个面板。第二个面板取决于第一个。是否首先将
FlowPanel
添加到根容器中?yeap。RootPanel.get().add(首先)Andrei嗨,我有一个关于计时器的问题。我做了一个定时器,它可以设置面板的高度,并设置定时器;但有时我观察到高度不固定。你能解释一下怎么了吗?Thx提前使用定时器而不是调度器来设置高度的原因是什么?在定时器中设置的指定时间可能不够,也可能不够。我不能不看你的代码,也可能不分析你的应用程序,就知道为什么在某些情况下指定的时间延迟是不够的。在调度程序中,您只需说“无论何时完成页面渲染,请执行此操作”。