在GXT中将最小宽度设置为视口

时间:2012-10-08 11:46:20

标签: gwt viewport gxt

有没有办法可以为Viewport设置最小宽度? Viewport应该像往常一样超出这个宽度。我在项目中使用GXT 2.2.5和GWT 2.4。

Thnx提前。

3 个答案:

答案 0 :(得分:1)

与往常一样:设置类似

的内容
body {
  min-width: 1000px;
}

在CSS文件中。

如果您正在使用RootLayoutPanel或绝对定位的其他内容,请在该容器上设置最小宽度,例如

// Java:

  RootLayoutPanel.get().addStyleName("requires-min-width");

// CSS:

  .requires-min-width {
    min-width: 1000px;
  }

答案 1 :(得分:0)

直接从GXT 2.2.5源代码获取的类级别javadoc的第一句;

  

一个LayoutContainer,用于填充浏览器窗口并监视窗口大小调整。

因此,您不必设置最小宽度。它将填充浏览器窗口。然后,如果浏览器窗口调整大小,则应使用它调整大小。

答案 2 :(得分:0)

自己跑进去。 GWT 2.8和GXT 4.0.1

扩展Viewport类并覆盖onWindowResize和doLayout方法,如下所示

         Viewport viewport = new Viewport() {

            @Override
            protected void onWindowResize(int width, int height) {
                int minWidthChecked = Math.max(width, MIN_WIDTH);
                int minHeightChecked = Math.max(height, MIN_HEIGHT);

                super.onWindowResize(minWidthChecked, minHeightChecked);
            }

            @Override
            protected void doLayout() {
                Size size = getContainerTarget().getStyleSize();
                size.setWidth(Math.max(size.getWidth(), MIN_WIDTH));
                size.setHeight(Math.max(size.getHeight(), MIN_HEIGHT));
                getContainerTarget().setSize(size);

                super.doLayout();
            }

        };

这样,实现RequiresResize的视口的所有子节点都将获得适当的宽度和高度。如果页面小于分钟,则必须覆盖doLayout以更正初始加载时的大小。

最后确保应用以下样式

html {
   overflow: auto !Important;
}

body {
   min-width: 1024px;
   min-height: 800px;
}

出于某种原因,我认为GWT将隐藏的溢出添加到html中。另一个好主意是使用GSS的@eval结构引用MIN_WIDTH和MIN_HEIGHT的值,这是在一个地方定义的。