2010-07-16 60 views
3

我有一個帶有3個垂直面板的水平面板。 在垂直面板上有自定義小部件Gwt垂直面板單元高度

我需要所有垂直面板具有相同的高度(即使它們內部具有不同數量的小部件)和空白空間中的按鈕。

所以,我把所有面板的高度= 100%,按鈕高度= 100%。

的問題是,verticalpanel細胞高度是比我小部件大,所以它留下的所有verticalpanels部件之間的空間。

Here is an example

我怎樣才能調整verticalpanels細胞高度到我的小部件的高度。我的小部件不是像這個例子那樣的圖像,所以我無法知道小部件的高度。

我有很多的時間在這個問題上,anyidea將有助於 THX !!!!

回答

0

還沒有嘗試過,但是這個應該工作,或至少給你的東西開始:

VerticalPanel.setCellHeight(yourWidget, Integer.toString(yourWidget.getElement().getOffsetHeight())+"px"); 

作用: setCellHeight()設置單元格控件的高度是你傳遞到功能。
函數中的第二個參數是該單元格的高度。這有點棘手,因爲你不知道高度。
使用getElement(),您可以在瀏覽器的DOM中獲取該小部件的元素,並在該元素上調用getOffsetHeight()。
getOffsetHeight()返回一個整數,所以你需要將它轉換爲一個字符串並將「px」連接到它,以便瀏覽器知道它是像素而不是em或類似的東西。

+0

thx,用getOffsetHeight我可以得到小部件的高度。但是,如果在將小部件添加到面板後使用它,高度爲0px。如果我在onLoad()中使用該方法,它會計算窗口小部件的高度,但在它應用樣式之前。 當我應該使用該方法來獲得小部件高度後,它應用風格??? thx再次!!! – david 2010-07-16 21:39:48

+0

使用Cell的高度似乎是合乎邏輯的。我的其他要求是設置水平對齊,並通過相同的方式。但是......沒有效果,它不工作,不知道爲什麼,如果找到一個我將在稍後發佈的anwser。 – 2015-03-03 13:57:55

+0

發現它是什麼,非常簡單。只需添加第一(窗口小部件)和佈局之後的值(水平aligment和高度),所以: 'verticalPanel.add(插件);'' vertialPanel.setCellHeight(插件 「30PX」);' – 2015-03-03 18:52:39