1

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

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

4

3 回答 3

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)

于 2009-08-28T19:31:18.700 回答
0

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

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

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

于 2014-08-06T22:42:37.970 回答
0

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

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

首先,由于我不知道为什么,ScrollPanel 不能充当其他小部件。无法设置相对大小(50%),如果我给它一些样式,它会在某处丢失并且无法从页面中找到。

我的解决方案是使用 ResizeLayoutPanel。Andrei 建议使用 ProvidesResize 但要求提供/要求调整大小链保持不间断,这可能非常棘手。我发现这个 ResizeLayoutPanel “ProvidesResize to its one child, but doesn't RequiresResize”,它是我的复合材料根面板的完美候选者。然后,只要它被父 ResizeLayoutPanel 调用,我只需扩展 ScrollPanel 以在“onResize”方法中调整自身大小。

我的第一个问题仍然没有答案:由 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);
于 2016-12-15T03:32:27.427 回答