我无法在我的代码中获取小部件的高度
docklayoutpanel.setHeight("1900px");
String height=Integer.toString(docklayoutpanel.getOffsetHeight());
String heightt=height+"px";
System.out.println(heightt);
但 o/p 始终为 0px。
这个问题很老,但我遇到了同样的问题,我花了很长时间才解决它。所以在这里帮助别人是我的解决方案。我正在使用 UIBinder 来构建我的视图,并在构造函数中添加了一个调度程序。
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");
}
}
这取决于您在哪里调用此代码。加载后高度将可用,即您可以通过onLoad()
方法获得高度