2009-08-25 74 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);