我使用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。我做错了什么请帮助我。

最佳答案

您尝试使用以下方法设置面板的宽度和高度:

<g:AbsolutePanel height="500" width="500">


但您未指定CSS单位。尝试:

<g:AbsolutePanel height="500px" width="500px">


然后您会看到Label2Label3

关于java - GWT AbsolutePanel未显示在浏览器中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46749449/

10-11 12:18