GWT相对宽度

时间:2009-08-25 17:48:52

标签: java gwt width

我正在尝试制作一个具有相对大小参数的滚动面板。但是如果你有ScrollPanel.setSize(String, String)返回的int值,Window.getHeight函数是不可能的。

当我尝试ScrollPanel.setSize("100%", "150px");时,它不会改变滚动面板的高度,而是使用默认值。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

根据[ScrollPanel] [1]的GWT文档,他们似乎非常严格地使用绝对而不是相对 CSS单位的宽度。 因此问题可能出在“100%”参数上。

[1]:http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/ScrollPanel.html#setSize(java.lang.String,java.lang.String)

答案 1 :(得分:0)

我不确定它是否可以处理高度,但对宽度有用的是首先设置任意宽度,然后获取元素并设置width属性。

ScrollPanel myScrollPanel = new ScrollPanel();
myScrollPanel.setSize("2112px", "150px");   // Arbitrary width.
myScrollPanel.getElement().getStyle().setProperty("width", "100%");  // or "auto"

希望这对你有用(虽然你5年前问过这个问题,所以你可能不再担心它了!)

答案 2 :(得分:0)

从这里复制我的答案:How to use ScrollPanel with relative size

=============================================== ===================

首先,ScrollPanel不是其他小部件,因为我不知道为什么。无法设置相对大小(50%),如果我给它一些风格,它就会丢失,无法从页面中找到。

我的解决方案是使用ResizeLayoutPanel。 Andrei建议使用ProvideResize,但要求提供/要求调整大小的链保持不间断,这可能非常棘手。我发现这个ResizeLayoutPanel" ProvideResize给它的一个孩子,但不是RequiresResize",这是我复合的根面板的完美候选者。然后,我只是扩展ScrollPanel以在" onResize"中调整自身大小。无论什么时候由父ResizeLayoutPanel调用。

我的第一个问题仍然没有答案:ScrollPanel首先表现得像这样吗?我试图在源代码中找到答案,但没有成功(虽然我没有花足够的时间研究源代码)。

public class My100PctScrollPanel extends ScrollPanel {
    @Override
    public void onResize() {
        // Window.alert("on resize"); 
        this.setWidth(this.getParent().getOffsetWidth()+"px");
        this.setHeight(this.getParent().getOffsetHeight()+"px");
        super.onResize();
    }
}

........

compositeRoot = new ResizeLayoutPanel();  

........
scrollPanel = new My100PctScrollPanel();
compositeRoot.clear();
compositeRoot.add(scrollPanel);