Gwt 在GXT中调整南北集装箱布局大小

Gwt 在GXT中调整南北集装箱布局大小,gwt,extjs,gxt,Gwt,Extjs,Gxt,我试图创建一个简单的页面示例,上面有一个菜单栏,底部有一个BorderLayoutContainer。我不知道如何让底部自动适应剩余的尺寸 我有这样的想法: public void onModuleLoad() { MenuBar mbar = new MenuBar(); // Add menus... BorderLayoutContainer blc = new BorderLayoutContainer(); // Create borderlayout

我试图创建一个简单的页面示例,上面有一个菜单栏,底部有一个BorderLayoutContainer。我不知道如何让底部自动适应剩余的尺寸

我有这样的想法:

public void onModuleLoad() {
    MenuBar mbar = new MenuBar();
    // Add menus...

    BorderLayoutContainer blc = new BorderLayoutContainer();
    // Create borderlayout parts...

    NorthSouthContainer mainCon = new NorthSouthContainer();
    mainCon.addNorthWidget(mbar);
    mainCon.addSouthWidget(blc);

    ViewPort vp = new ViewPort();
    vp.add(mainCon);
    RootPanel.get().add(vp);
}
菜单栏显示正确,但底部(BorderLayoutContainer)已完全挤压。如果我只是将BorderLayoutContainer添加到视口中,它将正确显示,即填充整个屏幕


为什么大小不能从NorthSouthContainer的南部传递到BorderLayoutContainer。还是发生了什么事?

几周前我也遇到过同样的问题。这似乎是GXT中的一个bug,在某些地方小部件的css没有被正确地注入。如您所知,north和southwidget从父容器获取其高度属性。通过将样式属性传递给内部小部件,可以避免此错误,如下所示:

mbar.getElement().getStyle().setProperty("height", "50%");
blc.getElement().getStyle().setProperty("height", "50%");

当然,我知道这不是一个真正干净的解决方案,但它是一种可能性。如果希望完全访问解决方案,则需要在BorderLayoutContainer中实现自己的外观。呸…

我也有同样的问题。作为一种解决方法,如果您将south小部件包装到另一个Viewport实例中,它将使用GXT 3.1.1为我工作。

这是一个官方错误。您可以尝试使用VerticalLayoutContainer,如下所示-

VerticalLayoutContainer vlc = new VerticalLayoutContainer();
vlc.add(mBar,new VerticalLayoutData(1,-1));
vlc.add(blc,new VerticalLayoutData(1,1));

请参阅此处的详细信息

您使用的是哪个版本的GXT?