Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 相对宽度_Java_Gwt_Width - Fatal编程技术网

Java 相对宽度

Java 相对宽度,java,gwt,width,Java,Gwt,Width,我正在尝试制作一个具有相对大小参数的滚动面板。但是如果您有int值,例如Window.getHeight返回的值,则无法使用ScrollPanel.setSize(String,String)函数 当我尝试使用ScrollPanel.setSize(“100%,“150px”)它不会更改滚动面板的高度,而是使用默认值。任何帮助都将不胜感激。根据[ScrollPanel][1]的GWT文档,他们似乎对使用绝对和相对CSS单位的宽度非常严格。 因此,问题可能出在“100%”参数上 [1] :,jav

我正在尝试制作一个具有相对大小参数的滚动面板。但是如果您有int值,例如
Window.getHeight返回的值,则无法使用
ScrollPanel.setSize(String,String)
函数


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

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


[1] :,java.lang.String)

我不确定是否可以处理高度,但对我来说,处理宽度的方法是先设置任意宽度,然后获取元素并设置宽度属性

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

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

从这里复制我的答案:

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

首先,ScrollPanel是一个不作为其他小部件的东西,原因我不知道为什么。无法设置相对大小(50%),若我给它一些样式,它会丢失在某个地方,无法从页面中找到

我的解决方案是使用ResizeLayourpanel。Andrei建议使用ProvidesResize,但要求provide/require resize链保持不变,这可能非常棘手。我发现这个ResizeLayoutPanel“为它的一个子级提供了调整大小的功能,但不需要调整大小”,它是我的合成文件的根面板的完美候选者。然后,只要父ResizeLayoutPanel调用ScrollPanel,我就可以通过“onResize”方法扩展ScrollPanel来调整其自身大小

对我的第一个问题仍然没有答案:首先,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);