2009-08-25 77 views
1

我正在尝试制作具有相对大小参数的滚动面板。但是如果您有int值,例如Window.getHeight返回的那些值,则ScrollPanel.setSize(String, String)函数不可能使用。GWT相对宽度

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

+0

你能展示最简单的代码片段来重现问题吗?如果我们确切知道你想要做什么,你更有可能获得帮助。 – 2009-08-27 04:38:47

+0

看到这个问题(和我的答案):http://stackoverflow.com/questions/41110336/how-to-use-scrollpanel-with-relative-size – Adam 2016-12-13 01:45:51

回答

0

我不知道是否有可能与高度的事,但对我来说与宽度什么工作是先设置任意宽度,然后获取元素并设置宽度属性。

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

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

0

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

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

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

我的解决方案是使用ResizeLayoutPanel。 Andrei建议使用一些ProvideResize,但要求提供/需求调整链条保持不间断,这可能非常棘手。我发现这个ResizeLayoutPanel“为其一个孩子提供了Resize,但没有RequiresResize”,这是我的合成的根面板的完美候选人。然后,只要扩展ScrollPanel,就可以在父级ResizeLayoutPanel调用它的时候在“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);