我无法在代码中获得小部件的高度
docklayoutpanel.setHeight("1900px");
String height=Integer.toString(docklayoutpanel.getOffsetHeight());
String heightt=height+"px";
System.out.println(heightt);
但是o / p总是0px。
答案 0 :(得分:1)
这个问题已经过时了,但我遇到了同样的问题,我花了很长时间才解决它。所以在这里帮助别人是我的解决方案。 我正在使用UIBinder构建我的视图,并在构造函数中添加了一个Scheduler。
public class MyWidgetImpl extends Composite implements MyWidget {
@UiTemplate("MyWidget.ui.xml")
interface MainViewUiBinder extends UiBinder<Widget, MyWidgetImpl> {
}
@UiField(provided = true)
InputPanel inputPanel;
@UiField(provided = true)
ResultPanel resultPanel;
public MyWidgetImpl() {
inputPanel = ClientFactory.getInputPanel();
resultPanel = ClientFactory.getResultPanel();
MainViewUiBinder uiBinder = GWT.create(MainViewUiBinder.class);
initWidget(uiBinder.createAndBindUi(this));
Window.addResizeHandler(new ResizeHandler() {
public void onResize(ResizeEvent event) {
resize();
}
});
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
public void execute() {
resize();
}
});
}
private void resize() {
if(Window.getClientHeight() > resultPanel.getCellTree().getAbsoluteTop())
resultPanel.getScrollPanel().setHeight((Window.getClientHeight() - resultPanel.getCellTree().getAbsoluteTop()) + "px");
}
}
答案 1 :(得分:0)
这取决于您在何处调用此代码。加载后高度可用,即您可以使用onLoad()
方法