我使用GWT UiBinder创建包含AbsolutePanel的小部件,如下所示:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:VerticalPanel>
<g:Label>Label1</g:Label>
<g:AbsolutePanel height="500" width="500">
<g:at left='10' top='60'>
<g:Label>Label2</g:Label>
</g:at>
<g:at left='10' top='100'>
<g:Label>Label3</g:Label>
</g:at>
</g:AbsolutePanel>
<g:Label>Label4</g:Label>
</g:VerticalPanel>
</ui:UiBinder>
比创建相应的类:
public class TestAbsPanelWidget extends Composite {
@UiTemplate("TestAbsPanelWidget.ui.xml")
interface MyUiBinder extends UiBinder<Widget, TestAbsPanelWidget> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
public TestAbsPanelWidget() {
initWidget(uiBinder.createAndBindUi(this));
}
}
比使用它我的GWT入口点:
public class TestAbsPanel2 implements EntryPoint {
public void onModuleLoad() {
RootPanel.get("div_id").add(new TestAbsPanelWidget());
}
}
之后我在浏览器的屏幕上看到“Label1”和“Label4”,但没有“Label2”和“Label3”。似乎AbsolutePanel没有显示。我做错了什么,请帮助我。
答案 0 :(得分:2)
您尝试使用以下方式设置面板的宽度和高度
<g:AbsolutePanel height="500" width="500">
但您没有指定CSS单位。尝试:
<g:AbsolutePanel height="500px" width="500px">
您将看到Label2
和Label3
。